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 configuration
2 version=6                   ; IPv6
3
4 [user]
5 name = Bob Smith            ; Spaces aroud ‘=‘ are strpped
6 email = [email protected]       ; 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 protected]

以上

参考文档:
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

时间: 2024-12-24 12:01:30

ini 配置文件总结的相关文章

php.ini配置文件

php.ini配置文件: engine=On;使PHP脚本语言引擎在Apache下有效.当设置engine=Off后不能解析PHP文件. short_open_tag=Off;设置<? code ?>标志是否能被识别.设置short_open_tag=Off后不能识别在<? code ?>中的代码 . asp_tags = Off:设置<% code %>标志是否能被识别.设置asp_tags==Off;后不能识别. precision = 14:设置浮点类型数据显示位

【Qt 】QSettings写ini配置文件

QSettings写ini配置文件(Qt版本5.2): #include "inidemo.h" #include <QSettings> #include <QTextCodec> IniDemo::IniDemo(QWidget *parent) : QMainWindow(parent) { ui.setupUi(this); QSettings settings("setting.ini",QSettings::IniFormat);

操作ini配置文件设计一个最基本的可视化数据库系统

对于很多小项目来说,不需要搭建专门的数据库系统(例如用SQLite搭建本地数据库),这时可以用ini配置文件实现一个最基本的数据库,实现数据库最基本的增删改查功能. ini配置文件的用法参考我以前写的文章:http://www.cnblogs.com/xh6300/p/5895759.html 这种配置文件的结构如下: [section1] key1=value1 key2=value2 [section2] key3=value3 key4=value4 …… 具体配置文件如下: 如果要想让这

8_Php.ini 配置文件详解

Php.ini 配置文件详解(配置php错误日志) 第一步禁用一些高风险函数 & 打开错误日志 [[email protected] etc]# vim /usr/local/php/etc/php.ini disable_functions = eval,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,p

DCMTK开源库的学习笔记4:利用ini配置文件对dcm影像进行归档

转:http://blog.csdn.net/zssureqh/article/details/8846337 背景介绍: 医学影像PACS工作站的服务端需要对大量的dcm文件进行归档,写入数据库处理.由于医学图像的特殊性,每一个患者(即所谓的Patient)每做一次检查(即Study)都至少会产生一组图像序列(即Series),而每一组图像序列下会包含大量的dcm文件(例如做一次心脏CTA的诊断,完整的一个心脏断层扫描序列大约有200幅图像).DICOM3.0协议中对每一幅影像是按照特定的三个

笔记 php.ini配置文件中magic_quotes_gpc, magic_quotes_runtime的作用是什么?应该开启还是关闭?

默认情况下,PHP 指令 magic_quotes_gpc 为 on,对所有的 GET.POST 和 COOKIE 数据自动运行 addslashes().不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义.遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测. PHP magic_quotes_gpc=on的情况:我们可以不对输入和输出数据库的字符串数据作addslashes()和stripslas

MFC操作ini配置文件

MFC操作ini配置文件 概述     在程序中经常要用到设置或者其他少量数据的存盘,以便程序在下一次执行的时候可以使用,比如说保存本次程序执行时窗口的位置.大小.一些用户设置的数据等等,在   Dos   下编程的时候,我们一般自己产生一个文件,由自己把这些数据写到文件中,然后在下一次执行的时候再读出来使用.在   Win32   编程中当然你也可以这样干,但   Windows   已经为我们提供了两种方便的办法,那就是使用注册表或者   ini   文件(Profile)来保存少量数据.本

INI配置文件的格式

Cited from: http://www.cnblogs.com/renyuan/p/4111695.html 为什么要用INI文件?如果我们程序没有任何配置文件时,这样的程序对外是全封闭的,一旦程序需要修改一些参数必须要修改程序代码本身并重新编译,这样很不好,所以要用配置文件,让程序出厂后还能根据需要进行必要的配置:配置文件有很多如INI配置文件,XML配置文件,还有就是可以使用系统注册表等. 本文主要是为读者在实现读写INI配置文件模块之前,提供有关INI文件的格式信息. 在早期的win

基于ini配置文件实现多维数组数据的按行存储和读取

需求是为一个多维数组对象的数据按行存储到文件,需要键值对区分层级,对每个对象描述清晰.类似的格式如下: 上图中的数据对应的就是如下的数组(php 语言): $arr = array( '10003' => array( 'id' => 10003, 'tokentime' => 400), '10005' => array( 'id' => 10005, <p> 'cookie' => array(</p> 'num' => 20 ), '