ini 文件操作记要(1): 使用 TIniFile


ini 文件操作记要(1): 使用 TIniFile


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.

原文地址:https://www.cnblogs.com/karkash/p/3436633.html