Delphi 中的 INI 文件编程
---- INI 文件在系统配置及应用程序参数保存与设置方面,具有很重要的作用,所以可视化的编程一族,如 VB 、 VC 、 VFP 、 Delphi 等都提供了读写 INI 文件的方法,其中 Delphi 中操作 INI 文件,最为简洁,这是因为 Delphi3 提供了一个 TInifile 类,使我们可以非常灵活的处理 INI 文件。
一、有必要了解 INI 文件的结构:
; 注释
[ 小节名 ]
关键字 = 值
...
---- INI 文件允许有多个小节,每个小节又允许有多个关键字, “=” 后面是该关键字的值。
---- 值的类型有三种:字符串、整型数值和布尔值。其中字符串存贮在 INI 文件中时没有引号,布尔真值用 1 表示,布尔假值用 0 表示。
---- 注释以分号 “;” 开头。
二、定义
---- 1 、在 Interface 的 Uses 节增加 IniFiles ;
---- 2 、在 Var 变量定义部分增加一行:
myinifile:Tinifile;
---- 然后,就可以对变量 myinifile 进行创建、打开、读取、写入等操作了。
三、打开 INI 文件
myinifile:=Tinifile.create('program.ini');
--- 上面这一行语句将会为变量 myinifile 与具体的文件 program.ini 建立联系,然后,就可以通过变量 myinifile ,来读写 program.ini 文件中的关键字的值了。
---- 值得注意的是,如果括号中的文件名没有指明路径的话,那么这个 Program.ini 文件会存储在 Windows 目录中 , 把 Program.ini 文件存储在应用程序当前目录中的方法是:为其指定完整的路径及文件名。下面的两条语句可以完成这个功能:
Filename:=ExtractFilePath(Paramstr(0)) +'program.ini';
myinifile:=Tinifile.Create(filename);
四、读取关键字的值
--- 针对 INI 文件支持的字符串、整型数值、布尔值三种数据类型, TINIfiles 类提供了三种不同的对象方法来读取 INI 文件中关键字的值。
--- 假设已定义变量 vs 、 vi 、 vb 分别为 string 、 integer 、 boolean 类型。
vs:=myinifile.Readstring(' 小节名 ',' 关键字 ', 缺省值 );
vi:=myinifile.Readinteger(' 小节名 ',' 关键字 ', 缺省值 );
vb:=myinifile.Readbool(' 小节名 ',' 关键字 ', 缺省值 );
--- 其中缺省值为该 INI 文件不存在该关键字时返回的缺省值。
五、写入 INI 文件
---- 同样的, TInifile 类也提供了三种不同的对象方法,向 INI 文件写入字符串、整型数及布尔类型的关键字。
myinifile.writestring(' 小节名 ',' 关键字 ', 变量或字符串值 );
myinifile.writeinteger(' 小节名 ',' 关键字 ', 变量或整型数值 );
myinifile.writebool(' 小节名 ',' 关键字 ', 变量或 True 或 False);
---- 当这个 INI 文件不存在时,上面的语句还会自动创建该 INI 文件。
六、删除关键字
---- 除了可用写入方法增加一个关键字, Tinifile 类还提供了一个删除关键字的对象方法:
myinifile.DeleteKey(' 小节名 ',' 关键字 ');
七、小节操作
--- 增加一个小节可用写入的方法来完成,删除一个小节可用下面的对象方法:
myinifile.EraseSection(' 小节名 ');
--- 另外 Tinifile 类还提供了三种对象方法来对小节进行操作:
--- myinifile.readsection(' 小节名 ',TStrings 变量 ); 可将指定小节中的所有关键字名读取至一个字符串列表变量中;
--- myinifile.readsections(TStrings 变量 ); 可将 INI 文件中所有小节名读取至一个字符串列表变量中去。
---- myinifile.readsectionvalues(' 小节名 ',TStrings 变量 ); 可将 INI 文件中指定小节的所有行(包括关键字、 = 、值)读取至一个字符串列表变量中去。
八、释放
在适当的位置用下面的语句释放 myinifile :
myinifile.distory;