封装 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; 

原文地址:https://www.cnblogs.com/jijm123/p/11296251.html

时间: 2024-11-03 08:51:05

封装 INI 文件读写函数的相关文章

纯 C++ 代码实现的 INI 文件读写类

INI 文件便于配置简单的程序外部参数,在 Windows 平台上有一套专门用于 INI 文件读写的 API,但到了其他平台,好像就没了.我看了好几个 INI 文件解析的开源代码,不是那么满意,于是我按自己想法,也实现了一套很简单.很易用的 INI 文件解析的代码,只有一个头文件,所有的功能都包含了!!! INI 文件结构 在实现 INI 文件解析的工作前,必须先了解一下 INI 文件的结构,而据我的观察,INI 文件的结构可以如下示例所描述: [文件根] |--[空行] |--[注释] +--

QSettings配置读写-win注册表操作-ini文件读写

版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QSettings配置读写-win注册表操作-ini文件读写     本文地址:http://techieliang.com/2017/12/674/ 文章目录 1. 介绍 2. 创建配置文件  2.1. 配置格式  2.2. 作用域  2.3. 关于组织.程序名 3. 配置文件读写 4. 范例  4.1. win下SystemScope.IniFormat  4.2. win下UserSc

INI文件读写

我们在编写程序的过程中,有很多要用到出始化,但有很多都写进了注册表,而我们在想修改或者查看的时候必须到注册表里去修改,而不是直接到一个程序目录下的ini文件里查看或者修改,怎么使可以直接生成的ini文件能写进Debug 呢?而不写进注册表. 1 //初始化ini文件参数 2 typedef struct _INITFILE 3 { 4 int flag; //界面切换提示标志,开机自启动无需提示,但是启动后切换的话需要提示 5 CString pathName;//ini文件保存路径 6 CSt

C#对INI文件读写

C#本身没有对INI格式文件的操作类,可以自定义一个IniFile类进行INI文件读写. using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; namespace MSFramework.Common { /// <summary> /// ini文件类 /// </summary> pub

C# ini文件读写简单封装

一.故事线 ini文件是非常好用的配置文件,通过系统api可以方便的管理参数,本文介绍一下c#下文件读写方法. 二.文件格式 通常ini文件是这样的格式: [section1] key1=value1 key2=value2 [section2] key3=value3 key4=value4 section标识块,一个简单的分组 key~value对应的键值对 三.系统API [DllImport("kernel32")] private static extern long Wri

[Python3]INI文件读写

概述 ini是我们常见到的配置文件格式之一. ini是微软Windows操作系统中的文件扩展名(也常用在其他系统). ini“初始化(Initial)”的缩写.正如该术语所表示的,INI文件被用来对操作系统或特定程序初始化或进行参数设置. 其基本组成形式如下: [section_1] key1 = value1 key2 = value2 key3 = value3 key4 = value4 [section_2] key1 = value1 key2 = value2 key3 = valu

Linux C,文件读写函数

C标准库提供的用于读写文件的函数非常多,大多数函数都在stdio.h中声明. fread/fwrite,fgets/fputs,fgetchar/fputchar,fprintf/fscanf............. 这些函数原型声明都在stdio.h中,如下: size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); size_t fwrite(const void *ptr, size_t size, size_t

(转载)C++文件读写函数之——fopen、fread和fwrite、fgetc和fputc、fgets和fputs、ftellf和fseek、rewind

http://blog.sina.com.cn/s/blog_61437b3b0102v0bt.html http://blog.csdn.net/chenwk891/article/details/8776479 在C\C++中,文件操作都是由库函数来实现的,主要是分为读和写两种操作,以下详细讲解以下所有有关文件操作的用法: (1)fopen()函数:打开文件 包含头文件:#include 格式:FILE * fopen(const char * path,const char * mode)

C文件读写函数介绍(转)

1.fopen() fopen的原型是:FILE *fopen(const char *filename,const char *mode),fopen实现三个功能:为使用而打开一个流,把一个文件和此流相连接,给此流返回一个FILR指针. 参数filename指向要打开的文件名,mode表示打开状态的字符串,其取值如下: 字符串 含义 "r" 以只读方式打开文件 "w" 以只写方式打开文件 "a" 以追加方式打开文件 "r+"