码迷,mamicode.com
首页 > 其他好文 > 详细

ini 配置文件总结

时间:2014-11-23 23:07:38      阅读:443      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   os   使用   sp   

记录一下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 configuration
2 version=6                   ; IPv6
3 
4 [user]
5 name = Bob Smith            ; Spaces aroud ‘=‘ are strpped
6 email = bob@smith.com       ; And comments (like this) ignored
7 active = true               ; Test a boolean
8 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) == 0
14     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 配置文件总结

标签:style   blog   http   io   ar   color   os   使用   sp   

原文地址:http://www.cnblogs.com/pansj/p/iniFile_Summary.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!