封装 INI 文件读写函数

Posted jijm123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了封装 INI 文件读写函数相关的知识,希望对你有一定的参考价值。

delphi读写ini文件实例  
//--两个过程,主要实现:窗体关闭的时候,文件保存界面信息;窗体创建的时候,程序读取文件文件保存的信息。 
   
//--首先要uses IniFiles(单元) 
//--窗体创建的时候,读取ini文件信息 
   
procedure TfrmAFN04H_F9.FormCreate(Sender: TObject); 
var 
   vFIni: TIniFile; 
   sFileName: string; 
begin 
   sFileName := ExtractFileDir(Application.ExeName); 
   if Copy(sFileName, Length(sFileName) - 1, 1) = / then 
     sFileName := sFileName + saveInformation.ini 
   else 
     sFileName := sFileName + / + saveInformation.ini; 
   
   vFIni := TIniFIle.Create(sFileName); 
   Edit1.Text := vFIni.ReadString(AFN04F7, Edit1, 0); 
   Edit2.Text := vFIni.ReadString(AFN04F7, Edit2, 0); 
   Edit3.Text := vFIni.ReadString(AFN04F7, Edit1, 0); 
   Edit4.Text := vFIni.ReadString(AFN04F7, Edit4, 0); 
   
end; 
   
//--窗体关闭的时候,文件保存界面信息; 
   
procedure TfrmAFN04H_F9.FormClose(Sender: TObject; 
   var Action: TCloseAction); 
var 
   sFileName: string; 
   vFIni: TIniFile; 
   iTmp, i: integer; 
   name: string; 
begin 
   
   //写配置文件 
   sFileName := ExtractFileDir(Application.ExeName); 
   if Copy(sFileName, Length(sFileName) - 1, 1) = / then 
     sFileName := sFileName + saveInformation.ini 
   else 
     sFileName := sFileName + / + saveInformation.ini; 
   
   vFIni := TIniFIle.Create(sFileName); 
   try 
     vFIni.WriteString(AFN04F9, Edit1, Edit1.Text); 
     vFIni.WriteString(AFN04F9, Edit2, Edit2.Text); 
     vFIni.WriteString(AFN04F9, Edit3, Edit3.Text); 
     vFIni.WriteString(AFN04F9, Edit4, Edit4.Text); 
   finally 
     vFIni.Free; 
   end; 
end; 
[delphi] view plaincopy
uses IniFiles; 
   
   
//简单数据类型 
TSimpleType = (stInt, stFloat, stString, stDateTime, stDate, stTime, stBoolean); 
   
   
function ReadIniValue(const FileName, Section, Name: string; 
      SimpleType: TSimpleType; DefaultValue: Variant): Variant; 
   // 读Ini文件的函数 
   // FileName:Ini文件名 
   // Section:节点 
   // Name:字段名 
   // SimpleType:简单数据类型 
   // DefaultValue:默认值 
   // 返回变体类型 
begin 
with TIniFile.Create(FileName) do 
try 
    if SimpleType = stString then 
      Result := ReadString(Section, Name, DefaultValue) 
    else if SimpleType = stInt then 
      Result := ReadInteger(Section, Name, DefaultValue) 
    else if SimpleType = stFloat then 
      Result := ReadFloat(Section, Name, DefaultValue) 
    else if SimpleType = stDateTime then 
      Result := ReadDateTime(Section, Name, DefaultValue) 
    else if SimpleType = stDate then 
      Result := ReadDate(Section, Name, DefaultValue) 
    else if SimpleType = stTime then 
      Result := ReadTime(Section, Name, DefaultValue) 
    else if SimpleType = stBoolean then 
      Result := ReadBool(Section, Name, DefaultValue); 
finally 
    Free; 
end; 
   
procedure WriteIniValue(const FileName, Section, Name: string; 
      Value: Variant; SimpleType: TSimpleType); 
// 写INI文件的函数 
// FileName:Ini文件名 
// Section:节点 
// Name:字段名 
// Value:字段值 
// SimpleType:简单数据类型 
begin 
with TIniFile.Create(FileName) do 
try 
    if SimpleType = stString then 
      WriteString(Section, Name, VarToStr(Value)) 
    else if SimpleType = stInt then 
      WriteInteger(Section, Name, Value) 
    else if SimpleType = stFloat then 
      WriteFloat(Section, Name, Value) 
    else if SimpleType = stDateTime then 
      WriteDateTime(Section, Name, VarToDateTime(Value)) 
    else if SimpleType = stDate then 
      WriteDate(Section, Name, VarToDateTime(Value)) 
    else if SimpleType = stTime then 
      WriteTime(Section, Name, VarToDateTime(Value)) 
    else if SimpleType = stBoolean then 
      WriteBool(Section, Name, Value); 
finally 
    Free; 
end; 
   
end; 
   
   
调用范例: 
   
WriteIniValue(c:/config.ini,constring,db,aaa,stString); 
   
WriteIniValue(c:/config.ini,constring,port,1,stInt); 
   
ReadIniValue(c:/config.ini,constring,dbname,stString,misdate); 
   
ReadIniValue(c:/config.ini,constring,connect,stInt,-1); 
WriteIniValue(c:/中国烂鞋.ini,锅家队,猪教练,郭十二,stString); 
   
WriteIniValue(c:/中国烂鞋.ini,锅家队,平均罚球,1,stInt); 
   
ReadIniValue(c:/中国烂鞋.ini,锅家队,猪教练,stString,郭12); 
   
ReadIniValue(c:/中国烂鞋.ini,锅家队,平均罚球,stInt,-1); 
[delphi] view plaincopy
1.Delphi读写ini文件需要引用IniFiles单元 
2.定义变量: 
Var 
Filename:string; 
myinifile:Tinifile; 
3.变量附值 
Filename:=ExtractFilePath(Paramstr(0))+program.ini;//指明路径.如果不指明路径.文件将在windows目录建立 
myinifile:=Tinifile.Create(Filename);//Create(‘program.ini‘); 
4.写入文件 
myinifile.writestring(小节名,关键字,变量或者字符串值); 
myinifile.writeinteger(小节名,关键字,变量或者整数数值); 
myinifile.writenbool(小节名,关键字,变量或者True/False); 
如果ini文件不存在的时候.会自动创建该ini文件 
5.删除关键字 
myinifile.DeleteKey(小节名,关键字); 
6.删除小节 
myinifile.EraseSection(小节名); 
7.释放变量 
myinifile.distory; 
8.其他 
Tinifile类还提供了3种对象方法来操作ini文件 
①myinifile.readsection(小节名,TStrings变量);可将指定小节中的所有关键字名读取至一个字符串列表变量中; 
②myinifile.readsections(TStrings变量);可将INI文件中所有小节名读取至一个字符串列表变量中去. 
③myinifile.readsectionvalues(小节名,TStrings变量);可将INI文件中指定小节的所有行(包括关键字、=、值)读取至一个字符串列表变量中去. 
   
9. delphi读写ini文件实例 
//--两个过程,主要实现:窗体关闭的时候,文件保存界面信息;窗体创建的时候,程序读取文件文件保存的信息。 
//--首先要uses IniFiles(单元) 
//--窗体创建的时候,读取ini文件信息 
   
procedure TfrmAFN04H_F9.FormCreate(Sender: TObject); 
var 
   vFIni: TIniFile; 
   sFileName: string; 
begin 
   sFileName := ExtractFileDir(Application.ExeName); 
   if Copy(sFileName, Length(sFileName) - 1, 1) = / then 
     sFileName := sFileName + saveInformation.ini 
   else 
     sFileName := sFileName + / + saveInformation.ini; 
   
   vFIni := TIniFIle.Create(sFileName); 
   Edit1.Text := vFIni.ReadString(AFN04F7, Edit1, 0); 
   Edit2.Text := vFIni.ReadString(AFN04F7, Edit2, 0); 
   Edit3.Text := vFIni.ReadString(AFN04F7, Edit1, 0); 
   Edit4.Text := vFIni.ReadString(AFN04F7, Edit4, 0); 
   
end; 
   
//--窗体关闭的时候,文件保存界面信息; 
   
procedure TfrmAFN04H_F9.FormClose(Sender: TObject; 
   var Action: TCloseAction); 
var 
   sFileName: string; 
   vFIni: TIniFile; 
   iTmp, i: integer; 
   name: string; 
begin 
   
   //写配置文件 
   sFileName := ExtractFileDir(Application.ExeName); 
   if Copy(sFileName, Length(sFileName) - 1, 1) = / then 
     sFileName := sFileName + saveInformation.ini 
   else 
     sFileName := sFileName + / + saveInformation.ini; 
   
   vFIni := TIniFIle.Create(sFileName); 
   try 
     vFIni.WriteString(AFN04F9, Edit1, Edit1.Text); 
     vFIni.WriteString(AFN04F9, Edit2, Edit2.Text); 
     vFIni.WriteString(AFN04F9, Edit3, Edit3.Text); 
     vFIni.WriteString(AFN04F9, Edit4, Edit4.Text); 
   finally 
     vFIni.Free; 
   end; 
end; 

 

以上是关于封装 INI 文件读写函数的主要内容,如果未能解决你的问题,请参考以下文章

Python读写ini文件的封装类

vb读写ini文件

delphi读写INI系统配置文件

Windows API 读写.ini文件

Windows中如何读写INI文件

C/C++ 关于如何读写ini配置文件 (小结)