首页 > 代码库 > ini 配置文件总结
ini 配置文件总结
记录一下ini文件格式这一经典的配置文件格式,简单好用才是王道。
目录:
一、介绍
二、原理
三、应用
一、介绍
ini文件全称"initialization",文件后缀名为.ini,ini 文件格式用于保存相关软件的配置信息。
ini配置文件常用于windows操作系统下的系统配置项或者软件的特性,包括类似
字体信息,启动参数等。
二、原理
主要结构为包括以下的文本信息:1.sections(段)
2.keys(properties\键)
3.values(值)
1.sections
格式如下:
[section]
a=a
b=b
说明:section用于表示一类的键值对,并且使用"["和"]"符合包围。
section没有显示的介绍标志。
一个ini文件中可以存在多个section。
section之间不可以嵌套。
2.keys(properties\键)
3.values(值)
格式如下:
name=value
说明:键值对就是ini文件中最基本的元素。
4.其他说明
4.1大小写敏感问题:
ini文件对大小写不敏感(具体取决于使用的解析库)
4.2注释
";"表示注释的开头,分号之后的一行内容都为注释内容
4.3空格
需要注意解析库对空格的说明,有些库对空格是不支持的。
三、应用
一个简单的解析库参考源码如下https://github.com/OSSystems/inih
test.ini文件
1 [protocol] ; Protocol configuration2 version=6 ; IPv63 4 [user]5 name = Bob Smith ; Spaces aroud ‘=‘ are strpped6 email = bob@smith.com ; And comments (like this) ignored7 active = true ; Test a boolean8 pi = 3.14159 ; Test a floating point number
实例代码如下:
1 typedef struct 2 { 3 int version; 4 const char* name; 5 const char* email; 6 } configuration; 7 8 static int handler(void* user, const char* section, const char* name, 9 const char* value)10 {11 configuration* pconfig = (configuration*)user;12 13 #define MATCH(s, n) strcmp(section, s) == 0 && strcmp(name, n) == 014 if (MATCH("protocol", "version")) {15 pconfig->version = atoi(value);16 } else if (MATCH("user", "name")) {17 pconfig->name = strdup(value);18 } else if (MATCH("user", "email")) {19 pconfig->email = strdup(value);20 } else {21 return 0; /* unknown section/name, error */22 }23 return 1;24 }25 26 int main(int argc, char* argv[])27 {28 configuration config;29 30 if (ini_parse("test.ini", handler, &config) < 0) {31 printf("Can‘t load ‘test.ini‘\n");32 return 1;33 }34 printf("Config loaded from ‘test.ini‘: version=%d, name=%s, email=%s\n",35 config.version, config.name, config.email);36 return 0;37 }
-------------------------------------------------------------------------------
编译后运行结果如下:
Config loaded from ‘test.ini‘: version=6, name=Bob Smith, email=bob@smith.com
以上
参考文档:
http://en.wikipedia.org/wiki/INI_file
https://github.com/OSSystems/inih
http://msdn.microsoft.com/en-us/library/aa369282%28v=vs.85%29.aspx
ini 配置文件总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。