为什么要用INI文件?如果我们的程序没有任何配置文件时,这样的程序对外是全封闭的,一旦程序需要修改一些参数必须要修改程序代码本身并重新编译,这样很不好,所以要用配置文件,让程序出厂后还能根据需要进行必要的配置;配置文件有很多,如INI配置文件,XML配置文件,还有就是可以使用系统注册表等。
一、简介
*.ini文件是Initialization file的缩写,即为初始化文件,是Windows系统配置文件所采用的存储格式,统管Windows的各项配置,一般用户就用Windows提供的各项图形化管理界面就可以实现相同的配置了。但在某些情况,还是要直接编辑ini才方便,一般只有很熟悉Windows才能去直接编辑。
*.ini开始时使用于WIN3X下面,WIN95用注册表代替。
除了windows2003很多其他操作系统下面的应用软件也有*.ini文件,用来配置应用软件以实现不同用户的要求。一般不用直接编辑这些ini文件,应用程序的图形界面即可操作以实现相同的功能。它可以用来存放软件信息、注册表信息等。
二、文件扩展名
配置文件.ini
请注意:我们所讨论的是项目中的配置文件,它是整个项目共用的,所以它要有一个项目使用的文件名,其后缀是.ini。例如:端口配置 port.ini。
当然ini配置文件的后缀名也不一定必须是“.ini”,也可以是“.cfg”、“.conf”或者是“.txt”。
三、格式
ini配置文件由节、键、值组成。
【参数】(键=值):
INI所包含的最基本的“元素”就是参数(parameter),每个参数都有一个name和一个value,name和value由等号“=”隔开,name在等号的左边。如:
name=value
【节】:
所有的参数都是以节(section)为单位结合在一起的。所有的section名称都是独占一行,并且section名字都被方括号包围着([和])。在section声明后的所有parameters都属于该section。一个section没有明显的结束标识符,一个section的开始就是上一个section的结束,或者是文件结束。如:
[section]
【注解】:
注解(comments)使用分号表示(;),在分号后面的文字,直到该行结尾都全部为注释。
;comment textINI文件的数据格式的例子(配置文件的内容)
【举例】:
[Section1 Name]
Keyname1=value1
Keyname2=value2
... ...
[Section2 Name]
Keyname21=value21
Keyname22=value22
[Section1 Name]用来表示一个段落,因为INI文件可能是项目中共用的,所以使用Section Name段名来区分不同用途的参数区。例如[Section1 Name]表示传感器灵敏度参数区;[Section2 Name]表示测量通道参数区等等。
Keyname1=value1用来表示一个参数名和值。比如:Num=80,Name=app。
四、实例
如下为串口的一个INI配置实例:
; exp ini file
[port]
Portname=COM4
Port=4
五、作用
*.ini、*.inc之类的文件,一般是放一些常量或数据库链接语句等,再在需要的页面包含进去,和直接命为asp是没什么区别的。
但为了安全性,最好不要用这些后缀名,因为知道文件名时,在浏览器里输入该文件的地址时,可看到所有内容的。
在Windows系统中,INI文件是很多,最重要的就是“System.ini”、“System32.ini”和“Win.ini”。该文件主要存放用户所做的选择以及系统的各种参数。用户可以通过修改INI文件,来改变应用程序和系统的很多配置。但自从Window 95的推出,在Windows系统中引入了注册表的概念,INI文件在Windows系统的地位就开始不断下滑,这是因为注册表的独特优点,使应用程序和系统都把许多参数和初始化信息存放进了注册表中。但在某些场合,INI文件还拥有不可替代的地位。
.ini文件是windows的系统配置文件,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了,但在某些情况,还是要直接编辑.ini才方便,一般只有很熟悉windows才能去直接编辑。
六、经验
以我个人的使用经验来讲,通常将IOT和服务器相关的配置信息写入到ini配置文件,然后ini配置文件的路径通过系统环境变量XXX_CONFIG_PATH来进行动态指定(而不是代码固化,当然代码会有一个默认路劲),从而给我们的应用程序提供了非常大的灵活度。