DELPHI中的INI文件编程

简介:

第一部分:INI文件的结构:

;——注释
[小节名]
关键字=
...
---- INI文件允许有多个小节,每个小节又允许有多个关键字, =后面是该关键字的值。
---- 值的类型有三种:字符串、整型数值和布尔值。其中字符串存贮在INI文件中时没有引号,布尔真值用1表示,布尔假值用0表示。
---- 注释以分号;开头。
第二部分:
定义
---- 1、在InterfaceUses节增加IniFiles
---- 2、在Var变量定义部分增加一行:
fileHandle:Tinifile;
---- 然后,就可以对变量fileHandle进行创建、打开、读取、写入等操作了。
下面是一个通过ini文件读取数据库设置的例子,通过这个例子可以使我们更好地理解。
 
procedure DBConfig(var server_name,db_name,user_id,user_pwd:string);
var
  fileHandle:tinifile;
begin
  fileHandle:=TIniFile.Create(GetCurrentDir()+'\dbconfig.ini');
  server_name:=fileHandle.ReadString('dbsettings','server_name','ZYF');
  db_name:=fileHandle.ReadString('dbsettings','db_name','Al_Product');
  user_id:=fileHandle.ReadString('dbsettings','user_id','tap');
  user_pwd:=fileHandle.ReadString('dbsettings','user_pwd','tap');
  fileHandle.Destroy;
end;
注意:如果括号中的文件名没有指明路径的话,那么这个dbconfig.ini文件必须存储在Windows目录中,才能读出设定值,否则只有默认值,如果想把dbconfig.ini文件存储在应用程序当前目录中,读取的方法是:为其指定完整的路径及文件名。
    除了应用上面的GetCurrentDir()方法,下面的两条语句也可以完成这个功能:
Filename:=ExtractFilePath(Paramstr(0))+'program.ini';
myinifile:=Tinifile.Create(filename);
 
这里主要用到了下面的方法来读取文件
——fileHandle:=TIniFile.Create(GetCurrentDir()+'\dbconfig.ini'); //在当前工作目录下,创建一个INI文件
——filehandle.Readstring('小节名','关键字',缺省值); //读取一个关键字,可以指定缺省值
——fileHandle.Destroy  //操作完毕,结束句柄
第三部分:其他操作
     INI文件
同样的,TIniFile类也提供了三种不同的对象方法,向INI文件写入字符串、整型数及布尔类型的关键字。
fileHandle.WriteString('小节名','关键字',变量或字符串值);
fileHandle.WriteInteger('小节名','关键字',变量或整型数值);
fileHandle.WriteBool('小节名','关键字',变量或TrueFalse);
当这个INI文件不存在时,还会自动创建该INI文件。
     删除关键字
---- 除了可用写入方法增加一个关键字,Tinifile类还提供了一个删除关键字的对象方法:
fileHandle.DeleteKey('小节名','关键字');
     小节操作
--- 增加一个小节可用写入的方法来完成,删除一个小节可用下面的对象方法:
    fileHandle.EraseSection('小节名');
 
        另外Tinifile类还提供了三种对象方法来对小节进行操作:
    fileHandle.ReadSection(‘小节名’,TStrings变量);
      可将指定小节中的所有关键字名读取至一个字符串列表变量中;
 
    fileHandle. ReadSections(TStrings变量);
      可将INI文件中所有小节名读取至一个字符串列表变量中去。
 
    fileHandle.ReadSectionValues('小节名',TStrings变量);
      可将INI文件中指定小节的所有行(包括关键字、=、值)读取至一个
      字符串列表变量中去。
 
     释放:在适当的位置用下面的语句释放fileHandle
    fileHandle.Destroy;
 

本文转自 august 51CTO博客,原文链接:http://blog.51cto.com/august/6908,如需转载请自行联系原作者
相关文章
|
2月前
|
C#
Delphi可不可以制作出像c#那样的dll类库?
在Delphi中,创建DLL项目(如dll.dpr)并定义一个类TMyCls后,在另一个项目(如test.dpr)中可以引入此DLL并直接实例化和调用类的方法。然而,Delphi目前主要支持两种DLL形式:动态链接库(需显式声明exports,仅支持函数调用)和ActiveX DLL(需定义IDL接口)。这两种方式都较为繁琐。相比之下,C# 的DLL类库更为便捷,编写并编译后即可在其他项目中直接使用。
[11-22]MASM32编程获取文件语言、版本信息v3
[11-22]MASM32编程获取文件语言、版本信息v3
|
6月前
|
机器学习/深度学习 人工智能 算法
程序员必知:VS2017动态链接库(.dll)的生成与使用
程序员必知:VS2017动态链接库(.dll)的生成与使用
83 3
|
测试技术 C语言
分享一个好用的C语言.ini文件的解析库
分享一个好用的C语言.ini文件的解析库
423 0
|
7月前
|
C语言 C++
win32编程 -- 编写静态库空项目
win32编程 -- 编写静态库空项目
35 0
|
存储 编译器 C++
《C++避坑神器·十五》动态库只有dll文件,没有.lib文件时动态调用dll的中类和成员函数
《C++避坑神器·十五》动态库只有dll文件,没有.lib文件时动态调用dll的中类和成员函数
366 0
|
小程序
VB编程:获取文件夹下所有文件-1
VB编程:获取文件夹下所有文件-1
372 0
VB编程:获取文件夹下所有文件-1
|
小程序
VB编程:获取文件夹下所有文件
VB编程:获取文件夹下所有文件
546 0
VB编程:获取文件夹下所有文件
|
C语言 Windows 存储
【C语言】学习笔记11——简单链表及多文件程序编译(windows下)
1. 在Windows下需要在一个工程project下才能进行多文件编译。用的IDE是Dev c++ 5.11   简单介绍:   .h 文件:主要是结构定义,函数签名, 每个 .h 文件必须有一个同名 .
1097 0