admin

[系统应用] delphi 操作ini 文件范例

D10 环境

//需要引用IniFilesuses
  system.IniFiles;


//保存INI配置文件procedure TForm1.btnSaveClick(Sender: TObject);var
  myIniFile: TIniFile;
  filepath: string;begin
  filepath := ExtractFilePath(Application.Exename) + 'DBConfig.ini'; //取得ini文件的路径
  myIniFile := TIniFile.Create(filepath);  try
    myIniFile.WriteString('DBConf', 'Server', edtServer.Text);     //服务器地址
    myIniFile.WriteString('DBConf', 'Port', edtPort.Text);         //数据库端口
    myIniFile.WriteString('DBConf', 'Database', edtDatabase.Text); //数据库名
    myIniFile.WriteString('DBConf', 'User', edtUser.Text);         //登录用户名
    myIniFile.WriteString('DBConf', 'Password', edtPwd.Text);      //登录密码
    ShowMessage('保存成功');  finally
    myIniFile.Free;  end;end;



//载入INI配置文件procedure TForm1.btnLoadClick(Sender: TObject);var
  myIniFile: TIniFile;
  filepath: string;begin
  filepath := ExtractFilePath(Application.Exename) + 'DBConfig.ini'; //取得ini文件的路径
  myIniFile := TIniFile.Create(filepath);  try
    ListBox1.Clear;
    ListBox1.Items.Add('服务器:' + myIniFile.ReadString('DBConf', 'Server', ''));     //服务器地址
    ListBox1.Items.Add('端口:' + myIniFile.ReadString('DBConf', 'Port', ''));         //数据库端口
    ListBox1.Items.Add('数据库:' + myIniFile.ReadString('DBConf', 'Database', ''));   //数据库名
    ListBox1.Items.Add('用户名:' + myIniFile.ReadString('DBConf', 'User', ''));       //登录用户名
    ListBox1.Items.Add('密码:' + myIniFile.ReadString('DBConf', 'Password', ''));     //登录密码
  finally
    myIniFile.Free;  end;end;


Tinifile类还提供了3种对象方法来操作ini文件

①myinifile.readsection(小节名,TStrings变量);可将指定小节中的所有关键字名读取至一个字符串列表变量中;

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

③myinifile.readsectionvalues(小节名,TStrings变量);可将INI文件中指定小节的所有行(包括关键字、=、值)读取至一个字符串列表变量中去.


1、TIniFile对象


 以Delphi中,定义了一个TIniFile对象,将.INI文件封装在其中,并提供一些方法,专门用来对INI文件进行读写操作。如果在程序中要用到TIniFile类或其方法属性,就必须在程序单元的uses语句中手工加入对IniFiles单元的引用。


2、Create方法


 该方法用来创建一个处理INI文件的TIniFile类型实例。


 方法声明:constructor Create(const FileName:string);


 参数说明:FileName指明待创建的INI文件的文件名;


 注释:在使用TIniFile对象之前,必须先用此方法创建一个INI文件的实例。FileName中可以包含路径名,缺省时为Windows所在目录(一般就是C:windows,对于Windows NT来说,则一般是c:winnt)。用Create方法创建的实例,在使用完之后,调用Free方法释放内存。


3、ReadSection方法


 该方法从INI文件中读出指定段的所有子键名,并存入Strings参数指定的字符串列表对象中。


 方法声明:procedure ReadSection(const Section:string; Strings:TStrings);


 参数说明:Section指明要读取段的段名;


 Strings指明存放子键名的字符串列表;


 注释:ReadSection方法仅读入指定段的所有子键名,但不读入子键的值。


4、ReadSections方法


 该方法从INI文件中读取所有段名,并存入Strings参数指定的字符中列表中。


 方法声明:procedure ReadSections(Strings:TStrings);


 参数说明:Strings参数指明存放段名的字符串列表;


 注释:ReadSections方法将INI文件中所有段的段名读出,存入一指定的字符串列表中,此字符串列表可以直接使用某个列表框的Items属性。


5、ReadSectionValues方法


 该方法从INI文件中读入指定段的所有子键名及其键值,并存入Strings参数指定的字符串列表中。


 方法声明:procedure ReadSectionValues(const Section:String; Strings:TStrings);


 参数说明:Section指明要读取段的段名;


 Strings指明存放段名的字符串列表;


 注释:ReadSectionValues方法与ReadSection方法的区别在于后者仅读入子键名,面前者除了读取子键名之外,还读取该子键对应的键值。读入的子键名及键值在字符串列表中的存放方法与在文件中的显示方法一致,即"Key=Value"形式。


6、EraseSection方法


 该方法删除INI文件中指定的一个整段。


 方法声明:procedure EraseSection(const Section:string);


参数说明:Section指明待删除段的段名;


注释:EraseSection方法不仅删除指定段的段名,面且同时将该段的所有子键及键值删除。


7、DeleteKey方法


 该方法删除指定段中的某个指定的子键。


 方法声明:procedure DeleteKey(const Section,Key:string);


 参数说明:Section指明待删除子键据段的段名;


 Key指明待删除子键的键名;


 注释:DeleteKey方法删除整个子键(包括键名和键值),也就是删除该子键所在的一行。


8、ReadBool方法


 该方法读取指定段的某个子键的布尔值。


方法声明:function ReadBool(const Section,Key:string;Default:Boolean):Boolean;


参数说明:Section指明待读子键所在段的段名;


 Key指明待读子键的键名;


 Default参数指明缺省时的返回值。


注释:ReadBool方法用于读取一个子键的布尔型值,当键值为"1"时,返回True,键值为"0"时,返回False.


9、WriteBool方法


 该方法向指定段的某个子键写入布尔值。


 方法声明:procedure WriteBool(const Section, Key:string; Value:Boolean);


 参数说明:Senction指明待写入子键所在段的段名;


 Key参数指明待写入值的子键键名;


 Value指明待写入的布尔值;


 注释:WriteBool 方法用于写入一个子键的布尔值,当Value为"True"时,写入"1"。Value为"Flase"时,写入"0"。若在写入时,指定的段或键名不存在,则自动创建该段和键名。


10、ReadInteger方法


 该方法读取指定段的某个子键的整型值。


 方法声明:function ReadInteger(const Section,Key:string; Default:longint):longint;


 注释:此方法与ReadBool方法类似,只是变量类型不同。


11、WriteInteger方法


 该方法向指写段的某个子键写放整型值。


 方法声明:procedure WriteInteger(const Section,Key:string; Value:longint);


 注释:此方法与WriteBool方法类似,只是变量灰型不同。


12、ReadString方法


 该方法读取指定段的某个子键的字符串型 值。


 方法声明:function ReadString(const Section,Key:string; Default:string):string;


 注释;此方法与ReadBool方法类似,只是变量类型不同。


13、WriteString方法


 该方法向指写段的某个子键写入整型值。


 方法声明:procedure WriteString(const Section,Key:string; Value:string);


 注释:此方法与WriteBool方法类似,只是变量类型不同。


14、FileName属性


 该属性指明被封装在TIniFile对象中的INI文件的文件名。


 属性声明:property FileName:string;


 注释:FileName属性是一个运行时的只读属性。


 由一面的介绍,我们可以看到,强大的Delphi对INI文件的支持是非常全面的。我们在编写涉及此类操作的程序时,几乎无需使用Windows API函数

--------------------- 

作者:zang141588761 

来源:CSDN 

原文:https://blog.csdn.net/zang141588761/article/details/51557426 

版权声明:本文为博主原创文章,转载请附上博文链接!



#1楼
发帖时间:3月前   |   查看数:0   |   回复数:0
游客组