您的位置:首页 > 编程语言 > Delphi

delphi 对INI文件操作

2009-03-02 12:25 381 查看
INI文件结构:

    ;注释
    [小节名]
    关键字=值

    INI文件允许有多个小节,每个小节又允许有多个关键字,“=”后面是该关键字的值。值的类型有3种

: String ,integer, boolean 。其中字字符存取在INI文件时没有引号,布尔真值用1表示,假用0

表示。注释以“;”开头。
-----------------------------------------------------------------------------------------------------------------------------------

在Delphi中对INI文件进行操作,需要在Interface的Uses部分增加"IniFiles"单元.声明一个INI文件的实例方法是在Var部分:
Var
myinifile:Tinifile;
然后,就可以对变量myinifile进行创建、打开、读取、写入、编辑等操作了.各种操作说明如下:

(1)打开INI文件
使用下面的语句:
myinifile:=Tinifile.create('myinifile.ini');
上面这一行语句将会为变量myinifile与具体的文件myinifile.ini建立联系,然后,就可以通过变量myinifile来读写myinifile.ini文件中的关键字的值了.
注意:如果括号中的文件名没有指明路径的话,那么这个myinifile.ini文件会存储在Windows目录中,把myinifile.ini文件存储在应用程序当前目录中的方法是:为其指定完整的路径及文件名.下面的语句可以完成这个功能:
Filename:=ExtractFilePath(Paramstr(0))+'myinifile.ini';
myinifile:=Tinifile.create(filename);

(2)读取INI文件
针对INI文件支持的字符串、整型数值、布尔值三种数据类型,TINIfile类提供了三种不同的函数来读取INI文件中关键的值:

ReadString:读取字符串型数据,其声明为:
function ReadString(const Section,Ident,Default:String):String;override;
其中Section为小节名,Ident为关键字名称,Default是当小节不存在,关键字不存在或是键值尚未指定时的返回字符串值。

ReadInteger:读取整型数据,其声明为:
function ReadInteger(cont Section,Ident,Default:Longint):Longint;virtual;
参数意义与ReadString相同.

ReadBool:读取布尔型数据,其声明为:
function ReadBool(const Section,Ident:String;Default:Boolean):Boolean;virtual;
参数意义与ReadString相同.

(3)写入INI文件

WriteString:写入字符串型数据,其声明为:
procedure WriteString(const Section,Ident,Value:String);override;
其中Section为小节名,Ident为关键字名称,Value是要写入的字符串值.当小节名或是关键字不存在时,可以自动创建.

WriteInteger
WriteBool

(4)编辑INI文件
除了可用写入方法增加一个关键字,Tinifile类还提供了一个删除关键字的过程DeleteKey,声明如下:
procedure DeleteKey(const Section,Ident:String);override;

增加一个小节可用写入的方法来完成,删除一个小节可用下面的过程:
procedure EraseSection(const Section:String);override;
另外Tinifile类还提供了三种过程对小节进行操作:

ReadSection:可将指定小节中的所有关键字名读取至一个字符串列表变量中,声明如下:
procedure ReadSection(const Section:String;Strings:TStrings);override;

ReadSections:可将INI文件中所有小节名读取至一个字符串列表变量中去,声明如下:
procedure ReadSections(Strings:TString);override;

ReadSectionValues:可将INI文件中指定小节的所有行(包括关键字、=、值)读取至一个字符串列表变量中去,声明如下:
procedure ReadSectionValues(const Section:String;String:TStrings);override;

(5)释放INI文件
使用Destroy过程,声明如下:
destructor Destroy;virtual;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息