您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页Delphi操作Ini文件

Delphi操作Ini文件

来源:爱go旅游网
INI 文件在系统配置及应用程序参数保存与设置方面,具有很重要的作用,所以可视化的编程一族,如VB、VC、VFP Delphi等都提供了读写 INI 文件的方法,其中 Delphi 中操作 INI 文件,最为简洁,这是因为 Delphi 提供了一个 TInifile (IniFiles单元)类,使我们可以非常灵活的处理 INI 文件。

一、了解 INI 文件的结构 :“ ;” 注释 [ 小节名 ] 关键字1 = 值1

关键字2 = 值2

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 类还提供了三种对象方法来对小节进行操作:

1. 将指定小节中的所有关键字名读取至一个字符串列表变量中 ;

myinifile.readsection(' 小节名 ',TStrings 变量 );

2. 将 INI 文件中所有小节名读取至一个字符串列表变量中去。myinifile.readsections(TStrings 变量 );

3. 将 INI 文件中指定小节的所有行(包括关键字、= 、值 ) 读取至一个字符串列表变量中去。

myinifile.readsectionvalues(' 小节名 ',TStrings 变量 );

八、释放

在适当的位置用下面的语句释放 myinifile: MyIniFile.Distory;

九、实例

Var

MyIni: TIniFile;

FileName : string; //文件名与路径 ValStr : string; //字符串值 ValInt : integer; //整数值 ValBool : Boolean; //布尔值

//读ini文件内容begin

//取得应用程序当前路径和INI文件名

FileName := ExtractFilePath(Paramstr(0)) + 'MyIni.ini'; MyIni := TIniFile.Create(FileName); try

ValStr := MyIni.ReadString('MySection' ,'ValStr' ,''); ValInt := MyIni.ReadInteger('MySection' ,'ValInt' ,0); ValBool := MyIni.ReadBool('MySection' ,'ValBool' ,False); edtStr.Text := ValStr;

edtInt.Text := IntToStr(ValInt); cbxBool.Checked := ValBool; ShowMessage('Read Successful!') finally

MyIni.Free; end;end.

//写ini文件内容begin

FileName := ExtractFilePath(Paramstr(0)) + 'MyIni.ini'; MyIni := TIniFile.Create(FileName); ValStr := edtStr.Text;

ValInt := StrToInt(edtInt.Text); ValBool := cbxBool.Checked; try

MyIni.WriteString('MySection' ,'ValStr' ,ValStr);

MyIni.WriteInteger('MySection' ,'ValInt' ,ValInt); MyIni.WriteBool('MySection' ,'ValBool' ,ValBool); ShowMessage('Write Successful!') finally

MyIni.Free; end;

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务