参考:http://www.cnblogs.com/zhangzhifeng/archive/2011/12/01/2270267.html
一、ini文件的结构
;这是关于 ini 文件的注释
[节点]
关键字=值
...
ini文件允许有多个节点,每个节点有允许有多个关键字,“=”后面是该关键字的值(类型有三种:字符串、整型数值和布尔值。其中字符串存储在 ini 文件中时没有引号,布尔真值用 1 表示,布尔假值用 0 表示)。注释以分号 “;” 开头。
二、ini 文件的操作
1.在interface 的 uses 节增加 IniFiles
2.在var 变量定义部分增加一行:
inifile: Tinifile;
然后,就可以对变量 inifile进行创建、打开、读取、写入等操作了。
3.打开 ini 文件:
inifile:= Tinifile.Create('tmp.ini');
//Create的参数是 ini 文件的路径的字符串
4.读取关键字的值:
a:= inifile.Readstring('节点', '关键字', 缺省值); //string类型 b:= inifile.Readinteger('节点', '关键字', 缺省值); //integer类型 c:= inifile.Readbool('节点', '关键字', 缺省值); //boolean类型
其中 [缺省值] 为该 ini 文件不存在该关键字时返回的缺省值
5.写入 ini 文件:
infile.writestring('节点', '关键字', 变量或字符串值); //写入 string类型 infile.writestring('节点', '关键字', 变量或整型值); //写入 integer类型 infile.writestring('节点', '关键字', 变量或True或False); //写入 Boolean类型
当这个 ini 文件的节点不存在时,上面的语句还会自动创建该 ini 文件
6.删除关键字:
infile.DeleteKey('节点', '关键字'); //删除关键字 inifile.EraseSection('节点'); //删除节点
7.节点操作:
inifile.readsection('节点', TStrings变量); //可将指定节点的所有关键字名读取至一个字符串列表变量中 inifile.readsections(TStrings变量); //可将 ini 文件中所有节点读取至一个字符串列表变量中去。 inifile.readsectionvalues('节点', TStrings变量); //可将 ini 文件中指定节点的所有行(包括关键字、 = 、 值)读取至一个字符串变量中去
8.释放:
inifile.free;
三、例子
unit Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IniFiles, StdCtrls; type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
Inif: TIniFile;
end; var
Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject);
begin
Inif:= TIniFile.Create(ExtractFilePath(Paramstr(0))+'T.ini');
end; procedure TForm1.Button1Click(Sender: TObject);
begin
Inif.WriteString('T','t1','info'); //修改
end; procedure TForm1.Button2Click(Sender: TObject);
begin
Inif.DeleteKey('T','t2'); //删除
end; procedure TForm1.FormDestroy(Sender: TObject);
begin
Inif.Free;
end; end.