码迷,mamicode.com
首页 > 其他好文 > 详细

封装 INI 文件读写函数

时间:2014-10-18 16:48:04      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:blog   io   os   ar   for   文件   数据   div   on   

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 文件读写函数

标签:blog   io   os   ar   for   文件   数据   div   on   

原文地址:http://www.cnblogs.com/qingsong/p/4033184.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!