封装 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 文件读写函数的主要内容,如果未能解决你的问题,请参考以下文章