ini 文件操作
unit Unit1;
interface
uses
? Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
? Dialogs, StdCtrls;
type
? TForm1 = class(TForm)
??? Button1: TButton;
??? Button2: TButton;
??? Button3: TButton;
??? Button4: TButton;
??? Button5: TButton;
??? Button6: TButton;
??? Button7: TButton;
??? procedure FormCreate(Sender: TObject);
??? procedure FormDestroy(Sender: TObject);
??? procedure Button1Click(Sender: TObject);
??? procedure Button2Click(Sender: TObject);
??? procedure Button3Click(Sender: TObject);
??? procedure Button4Click(Sender: TObject);
??? procedure Button5Click(Sender: TObject);
??? procedure Button6Click(Sender: TObject);
??? procedure Button7Click(Sender: TObject);
? private
??? { Private declarations }
? public
??? { Public declarations }
? end;
var
? Form1: TForm1;
implementation
{$R *.dfm}
uses IniFiles;? {uses 包含 TIniFile 的单元}
var
? ini: TIniFile;
? path: string;???????? {ini 文件路径}
? Section,Key: string;? {分别表示 ini 文件的小节与关键字}
{
? ini文件结构:
? ;注释
? [小节名]
? 关键字=值
? INI文件支持: string、integer、boolean、Date、Time、DateTime、Double 与二进制类型
? string 值没有引号
? boolean 的真假用 1、0 表示
}
procedure TForm1.FormCreate(Sender: TObject);
begin
? path := ChangeFileExt(ParamStr(0),'.ini');
? ini := TIniFile.Create(path);? {ini 对象建立需要文件路径参数, 如果缺少路径会默认Windows目录}
end;
//写入 ini 文件:
procedure TForm1.Button1Click(Sender: TObject);
begin
? Section := 'AAA';
? Key := 'AString';
? ini.WriteString(Section,Key,'AAA-String');
? Key := 'AInteger';
? ini.WriteInteger(Section,Key,111);
? Key := 'ABoolean';
? ini.WriteBool(Section,Key,True);
? Key := 'ADate';
? ini.WriteDate(Section,Key,Now);
? Key := 'ATime';
? ini.WriteTime(Section,Key,Now);
? Key := 'ADateTime';
? ini.WriteDateTime(Section,Key,Now);
? Key := 'ADouble';
? ini.WriteFloat(Section,Key,Pi);
? Section := 'BBB';
? Key := 'BString';
? ini.WriteString(Section,Key,'BBB-String');
? Key := 'BInteger';
? ini.WriteInteger(Section,Key,222);
? Key := 'BBoolean';
? ini.WriteBool(Section,Key,True);
? Key := 'BDate';
? ini.WriteDate(Section,Key,Now);
? Key := 'BTime';
? ini.WriteTime(Section,Key,Now);
? Key := 'BDateTime';
? ini.WriteDateTime(Section,Key,Now);
? Key := 'BDouble';
? ini.WriteFloat(Section,Key,Pi);
? Section := 'CCC';
? Key := 'CString';
? ini.WriteString(Section,Key,'CCC-String');
? Key := 'CInteger';
? ini.WriteInteger(Section,Key,333);
? Key := 'CBoolean';
? ini.WriteBool(Section,Key,False);
? Key := 'CDate';
? ini.WriteDate(Section,Key,Now);
? Key := 'CTime';
? ini.WriteTime(Section,Key,Now);
? Key := 'CDateTime';
? ini.WriteDateTime(Section,Key,Now);
? Key := 'CDouble';
? ini.WriteFloat(Section,Key,Pi);
{写入结果:
? [AAA]
? AString=AAA-String
? AInteger=111
? ABoolean=1
? ADate=2007-12-17
? ATime=22:06:23
? ADateTime=2007-12-17 22:06:23
? ADouble=3.14159265358979
? [BBB]
? BString=BBB-String
? BInteger=222
? BBoolean=1
? BDate=2007-12-17
? BTime=22:06:23
? BDateTime=2007-12-17 22:06:23
? BDouble=3.14159265358979
? [CCC]
? CString=CCC-String
? CInteger=333
? CBoolean=0
? CDate=2007-12-17
? CTime=22:06:23
? CDateTime=2007-12-17 22:06:23
? CDouble=3.14159265358979
}
end;
//读取 ini 文件:
procedure TForm1.Button2Click(Sender: TObject);
var
? s: string;
? i: Integer;
? b: Boolean;
? f: Double;
? d: TDate;
? t: TTime;
? dt: TDateTime;
begin
? s := ini.ReadString('BBB','BString','');? {最后一个参数是默认值}
? i := ini.ReadInteger('BBB','BInteger',0);
? b := ini.ReadBool('BBB','BBoolean',False);
? f := ini.ReadFloat('BBB','BDouble',0);
? d := ini.ReadDate('BBB','BDate',Now);
? t := ini.ReadTime('BBB','BTime',Now);
? dt := ini.ReadDateTime('BBB','BDateTime',Now);
? ShowMessage(s);???????????????? {BBB-String}
? ShowMessage(IntToStr(i));?????? {222}
? ShowMessage(BoolToStr(b));????? {-1(True)}
? ShowMessage(FloatToStr(f));???? {3.14159265358979}
? ShowMessage(DateToStr(d));????? {2007-12-17}
? ShowMessage(TimeToStr(t));????? {22:06:23}
? ShowMessage(DateTimeToStr(dt)); {2007-12-17 22:06:23}
end;
//读入所有小节名到 TStrings:
procedure TForm1.Button3Click(Sender: TObject);
var
? List: TStrings;
begin
? List := TStringList.Create;
? ini.ReadSections(List);
? ShowMessage(List.Text);
? {
??? AAA
??? BBB
??? CCC
? }
? List.Free;
end;
//读入指定小节的所有关键字到 TStrings:
procedure TForm1.Button4Click(Sender: TObject);
var
? List: TStrings;
begin
? List := TStringList.Create;
? ini.ReadSection('AAA',List);
? ShowMessage(List.Text);
? {
??? AString
??? AInteger
??? ABoolean
??? ADate
??? ATime
??? ADateTime
??? ADouble
? }
? List.Free;
end;
//读入指定小节的所有关键字与值到 TStrings:
procedure TForm1.Button5Click(Sender: TObject);
var
? List: TStrings;
begin
? List := TStringList.Create;
? ini.ReadSectionValues('BBB',List);
? ShowMessage(List.Text);
? {
??? BString=BBB-String
??? BInteger=222
??? BBoolean=1
??? BDate=2007-12-17
??? BTime=22:06:23
??? BDateTime=2007-12-17 22:06:23
??? BDouble=3.14159265358979
? }
? List.Free;
end;
//删除与添加
procedure TForm1.Button6Click(Sender: TObject);
begin
? ini.DeleteKey('BBB','BString');? {删除关键字}
? ini.EraseSection('CCC');???????? {删除小节}
//? ini.UpdateFile;??????????????? {保存到文件}
{添加小节与关键字或修改值, 直接写入即可}
end;
//其他功能
procedure TForm1.Button7Click(Sender: TObject);
var
? b: Boolean;
? s: string;
begin
? b := ini.SectionExists('DDD');???????? {判断某个小节是否存在}
? b := ini.ValueExists('AAA','AString'); {判断某个关键字的值是否存在}
? s := ini.FileName;???????????????????? {获取文件名}
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
? ini.Free;
end;
end.