delphi中INI 文件的创建与使用

      INI 文件是一种文本文件,其内容分为若干段,每一段都包含若干了“关键字-值”对,它的每个条目都可以通过它所在的段和关键字名来识别。Windows 程序和操作系统一般用预制(INI)文件来保存程序设置以及其他的信息。

1.iNI 文件的结构
     ;注释
     [小节名]
    关键字=值

INI 文件允许有多个小节, 每个小节又允许有多个关键字, “=” 后面是该关键字的值。 值
的类型有 3 种:字符串、整型数值和布尔值。其中字符串存贮在 INI 文件中时没有引号;布尔真值用 1 表示,布尔假值用 0 表示;注释以分号“; ”开头。

2.定义
Delphi 中在使用 INI 文件前要先定义,定义方法如下:
(1)在 Interface 的 Uses 节必须增加 IniFiles;
(2)在 Var 变量定义部分增加定义一行相应的变量:myinifile:Tinifile;
然后,就可以对变量 myinifile 进行创建、打开、读取、写入等操作了。

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

或者myinifile:=Tinifile.Create(extractfiledir(application.ExeName)+'\program.ini');这个是保存在当前运行程序的目录文件夹下;

4.读取关键字的值
针对 INI 文件支持的字符串、整型数值、布尔值 3 种数据类型,TINIfiles 类提供了 3 种
不同的对象方法来读取 INI 文件中关键字的值。 假设已定义变量 vs、vi、vb 分别为 string、integer、boolean 类型。
vs:=myinifile.Readstring(小节名,关键字,缺省值);
vi:=myinifile.Readinteger(小节名,关键字,缺省值);

vb:=myinifile.Readbool(小节名,关键字,缺省值);
其中缺省值为该 INI 文件不存在该关键字时返回的缺省值。
5.写入 INI 文件
同样的,TInifile 类也提供了 3 种不同的对象方法,向 INI 文件写入字符串、整型数及布
尔类型的关键字。
myinifile.writestring(小节名,关键字,变量或字符串值);
myinifile.writeinteger(小节名,关键字,变量或整型数值);
myinifile.writebool(小节名,关键字,变量或 True 或 False);
当这个 INI 文件不存在时,上面的语句还会自动创建该 INI 文件。
6.删除关键字
除了可用写入方法增加一个关键字,Tinifile 类还提供了一个删除关键字的对象方法:
myinifile.DeleteKey(小节名,关键字);
7.小节操作
增加一个小节可用写入的方法来完成,删除一个小节可用下面的对象方法:
myinifile.EraseSection(小节名);
另外 Tinifile 类还提供了 3 种对象方法来对小节进行操作:
myinifile.readsection(小节名,TStrings 变量); //可将指定小节中的所有关键字名读取至一个字符串列表变量中
myinifile.readsections(TStrings 变量);//可将 INI 文件中所有小节名读取至一个字符串列表变量中去。
myinifile.readsectionvalues(小节名,TStrings 变量);
{可将 INI 文件中指定小节的所有行(包括关键字、=、值)读取至一个字符串列表变量中去}。

一些Delphi7的例子,包含下面内容:(高手就别看了,新手可看看,也是好多年没做了,又要做个小东西,练手做的例子) 有的是本人练习做的,少数是下载别人的或修改过的,也有1个似乎是明日科技的配套代码-此处没有删除,懒得删除直接打包了。 用这些分,只是用来备用下载其他东西而用,你觉得不值得,你留言分退给你(我来也不是常来这里),我认为是值得的。 还有一些其他的清单没罗列出来 如数据库表结构找不到,根据名字找这个文件名:EquipmentSQL_20170528_ok, 如果没就是没有了,因为一个连接服务器,一个是本机上的练习数据库,如没有请见谅 大致类型: cxGrid的几个例子、ini连接数据库、明日科技配套代码(文件上传下载)、 时间差相减(可参考Delphi函数里面的综合运用)、基本控件应用 cxGrid查找功能 cxGrid的列属性 cxGrid应用交流实例一_ok eg_Add_cbbValue_IntoMemo_test_20170401 eg_Check_Checkbox_Change eg_counter eg_cxGrid_Right_2 eg_cxGrid_Right_更细权限的bit值到表 eg_cxGrid_SumRecord_1 eg_DCom_connection_20170606 eg_ImportToSQL eg_LoadRecord_Improve_Original eg_LoadRZCheckTree_1 eg_LoadRZCheckTree_连带设置_2 eg_LoadRZCheckTree_双击用户设置_del eg_LoadTree_1 eg_ReadIni_独立数据模块 eg_test_ImportExcelToSQL_ComOBJ_2 eg_update_bit_20170528 eg_报废时间月日格式只有1位时问题_20170609 eg_测试某列的条件改变另外列的Edit属性(cxGrid的例子) eg_对BoolToStr后的值进行再次转换_最后循环取bit值 eg_时间差计算_2 FileMS(明日科技的配套代码,关于文件上传下载的那个) EquipmentSQL_20170528_ok(如没数据库的,在这里查表结构,有的表结构不在这里,只能参考一下了)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值