您的位置:首页 > 编程语言 > Delphi

Delphi中操作INI文件

2016-05-19 00:26 447 查看
INI 文件在系统配置及应用程序参数保存与设置方面,具有很重要的作用,所以可视化的编程一族,如VB、VC、VFP Delphi等都提供了读写 INI 文件的方法,其中 Delphi 中操作 INI 文件,最为简洁,这是因为 Delphi 提供了一个 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;
 
 
九、实例
需要引用的单元:IniFiles
 
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;
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: