本文整理自网络,侵删。
1、使用TIniFile
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = 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;varForm1: TForm1;implementation{$R *.dfm}uses IniFiles; {uses 包含 TIniFile 的单元}varini: 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);beginpath := ChangeFileExt(ParamStr(0),'.ini');ini := TIniFile.Create(path); {ini 对象建立需要文件路径参数, 如果缺少路径会默认Windows目录}end;//写入 ini 文件:procedure TForm1.Button1Click(Sender: TObject);beginSection := '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-StringAInteger=111ABoolean=1ADate=2007-12-17ATime=22:06:23ADateTime=2007-12-17 22:06:23ADouble=3.14159265358979[BBB]BString=BBB-StringBInteger=222BBoolean=1BDate=2007-12-17BTime=22:06:23BDateTime=2007-12-17 22:06:23BDouble=3.14159265358979[CCC]CString=CCC-StringCInteger=333CBoolean=0CDate=2007-12-17CTime=22:06:23CDateTime=2007-12-17 22:06:23CDouble=3.14159265358979}end;//读取 ini 文件:procedure TForm1.Button2Click(Sender: TObject);vars: string;i: Integer;b: Boolean;f: Double;d: TDate;t: TTime;dt: TDateTime;begins := 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);varList: TStrings;beginList := TStringList.Create;ini.ReadSections(List);ShowMessage(List.Text);{ AAA BBB CCC}List.Free;end;//读入指定小节的所有关键字到 TStrings:procedure TForm1.Button4Click(Sender: TObject);varList: TStrings;beginList := 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);varList: TStrings;beginList := 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);beginini.DeleteKey('BBB','BString'); {删除关键字}ini.EraseSection('CCC'); {删除小节}// ini.UpdateFile; {保存到文件}{添加小节与关键字或修改值, 直接写入即可}end;//其他功能procedure TForm1.Button7Click(Sender: TObject);varb: Boolean;s: string;beginb := ini.SectionExists('DDD'); {判断某个小节是否存在}b := ini.ValueExists('AAA','AString'); {判断某个关键字的值是否存在}s := ini.FileName; {获取文件名}end;procedure TForm1.FormDestroy(Sender: TObject);beginini.Free;end;end.
2、使用 TMemIniFile
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject);private { Private declarations }public { Public declarations }end;varForm1: TForm1;implementation{$R *.dfm}usesIniFiles;varini: TMemIniFile;procedure TForm1.FormCreate(Sender: TObject);beginini := TMemIniFile.Create('c:\temp\test.ini');end;//写入procedure TForm1.Button1Click(Sender: TObject);beginini.WriteString('AAA','A1','AAA-String');//其他也都和 IniFile 一样使用// ini.WriteInteger();// ini.WriteBool();// ini.WriteDate();// ini.WriteTime();// ini.WriteDateTime();// ini.WriteFloat();// ini.WriteBinaryStream();//ini.UpdateFile; //因为 TMemIniFile 是内存操作, 这样才能保存到文件end;//读出及其他procedure TForm1.Button2Click(Sender: TObject);vars: string;begins := ini.ReadString('AAA','A1','默认值');ShowMessage(s); //AAA-String//其他读入命令也都和 IniFile 一样使用// ini.ReadInteger();// ini.ReadBool();// ini.ReadDate();// ini.ReadTime();// ini.ReadDateTime();// ini.ReadFloat();// ini.ReadBinaryStream();//还有四个常用方法也是和 IniFile 一样的//ini.DeleteKey();//ini.EraseSection();//ini.ReadSection();//ini.ReadSections();//另外有三个 IniFile 中没有的方法也容易使用//ini.GetStrings(List: TStrings);//ini.SetStrings(List: TStrings);//ini.Rename(const FileName: string; Reload: Boolean);//其中 Rename 中的第二个 Boolean 参数如果为 True 将会刷新读入end;procedure TForm1.FormDestroy(Sender: TObject);beginini.Free;end;end.
相关阅读 >>
Delphi xe5 使用 android 内置函数几个小测试
Delphi tpicture 和 tbitmap 的相互转换
更多相关阅读请进入《Delphi》频道 >>