首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

ini 资料操作

2012-12-23 
ini 文件操作unit Unit1interfaceuses? Windows, Messages, SysUtils, Variants, Classes, Graphics, Con

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.

热点排行