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 文件的小節(jié)與關(guān)鍵字}
{ ini文件結(jié)構(gòu): ;注釋 [小節(jié)名] 關(guān)鍵字=值
INI文件支持: string、integer、boolean、Date、Time、DateTime、Double 與二進(jìn)制類型 string 值沒(méi)有引號(hào) boolean 的真假用 1、0 表示 }
procedure TForm1.FormCreate(Sender: TObject); begin path := ChangeFileExt(ParamStr(0),'.ini'); ini := TIniFile.Create(path); {ini 對(duì)象建立需要文件路徑參數(shù), 如果缺少路徑會(huì)默認(rèn)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);
{寫入結(jié)果: [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',''); {最后一個(gè)參數(shù)是默認(rèn)值} 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;
//讀入所有小節(jié)名到 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;
//讀入指定小節(jié)的所有關(guān)鍵字到 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;
//讀入指定小節(jié)的所有關(guān)鍵字與值到 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'); {刪除關(guān)鍵字} ini.EraseSection('CCC'); {刪除小節(jié)} // ini.UpdateFile; {保存到文件}
{添加小節(jié)與關(guān)鍵字或修改值, 直接寫入即可} end;
//其他功能 procedure TForm1.Button7Click(Sender: TObject); var b: Boolean; s: string; begin b := ini.SectionExists('DDD'); {判斷某個(gè)小節(jié)是否存在} b := ini.ValueExists('AAA','AString'); {判斷某個(gè)關(guān)鍵字的值是否存在} s := ini.FileName; {獲取文件名} end;
procedure TForm1.FormDestroy(Sender: TObject); begin ini.Free; end;
end.
|