INI文件格式是某些平台或软件上的配置文件的非正式标准,以节(section)和键(key)构成,常用于微软Windows操作系统中。

节(section)

节用方括号括起来,单独占一行,例如:
[section]

键(key)

键(key)又名属性(property),单独占一行用等号连接键名和键值,例如:
name=value

注释(comment)

注释使用英文分号(;)开头,单独占一行。在分号后面的文字,直到该行结尾都全部为注释,例如:
; comment text
 
微软在windows平台提供了一系列API来读取和保存INI文件的配置设置
GetPrivateProfileString, WritePrivateProfileString等
 
Unix Like系统不提供默认的接口访问ini文件,基于这个需求,写了一个跨平台的ini解析的模块
支持utf-8, unicode大端小端文件的编码格式的ini文件读取,最终以utf-8格式保存。
 
工程已上传至github
 
辅助功能模块两个:
1. CStdString: 提供CString和std::string功能的字符串类
2. Utf8_16: 提供文本文件编码解析功能
 
主功能模块类
CIniParser
外部接口:

bool Parse(LPCTSTR lpIniFile = _T(""));
bool SetValue(const CStdString& strSection, const CStdString& strKey, const CStdString& strVal);
bool RemoveKey(const CStdString& strSection, const CStdString& strKey);
bool RemoveSection(const CStdString& strSection);

void DumpIni(void);

bool Save();

Parse: 接受一个参数,ini文件的绝对路径

SetValue: 接受三个参数,section名,key名,value值。功能是设置section中的键值对,如果section不存在,则创建新的section。

RemoveKey: 接受两个参数,section名,key名。功能是从section移除key指向的键值对。

RemoveSection: 接口一个参数,section名。功能是移除整个section。

DumpIni: 输出解析完成的ini文件。

Save:保存ini配置至文件。

INI解析模块的C++实现的更多相关文章

  1. python解析模块(ConfigParser)使用方法

    python解析模块(ConfigParser)使用方法 很多软件都有配置文件,今天介绍一下python ConfigParser模块解析配置文件的使用方法 测试配置文件test.conf内容如下: ...

  2. 第四十二节,configparser特定格式的ini配置文件模块

    configparser用于处理特定格式的文件,其本质上是利用open来操作文件. 特定格式的ini配置文件模块,用于处理ini配置文件,注意:这个ini配置文件,只是ini文件名称的文本文件,不是后 ...

  3. 浩哥解析MyBatis源码(十一)——Parsing解析模块之通用标记解析器(GenericTokenParser)与标记处理器(TokenHandler)

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6724223.html 1.回顾 上面的几篇解析了类型模块,在MyBatis中类型模块包含的 ...

  4. python命令行参数解析模块argparse和docopt

    http://blog.csdn.net/pipisorry/article/details/53046471 还有其他两个模块实现这一功能,getopt(等同于C语言中的getopt())和弃用的o ...

  5. MyBatis源码解析(十一)——Parsing解析模块之通用标记解析器(GenericTokenParser)与标记处理器(TokenHandler)

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6724223.html 1.回顾 上面的几篇解析了类型模块,在MyBatis中类型模块包含的 ...

  6. python命令行解析模块--argparse

    python命令行解析模块--argparse 目录 简介 详解ArgumentParser方法 详解add_argument方法 参考文档: https://www.jianshu.com/p/aa ...

  7. 简单的INI解析封装

    简单封装的一个ini解析处理类(支持跨平台).支持功能: 加载并解析指定ini文件中的配置: 读取指定 section 下的指定 key 的值.提示:支持按数值型读取,或按文本类型读取:使用示例: a ...

  8. $命令行参数解析模块argparse的用法

    argparse是python内置的命令行参数解析模块,可以用来为程序配置功能丰富的命令行参数,方便使用,本文总结一下其基本用法. 测试脚本 把以下脚本存在argtest.py文件中: # codin ...

  9. 细谈HTML解析模块

     细谈HTML解析模块 Html在网页中所占的位置,用一个简单直观的图给展示一下:    

随机推荐

  1. RichtextBox 行和列

    获得光标所在的行号 获得光标所在的列号 设置光标到指定行号 设置光标到指定列号 http://www.huifangseo.com/blog/6/7.html 获得光标所在的行号和列号 方法1 int ...

  2. Swift 析构器deinit

    析构器只适用于类类型,当一个类的实例被释放之前,析构器会被立即调用.析构器用关键字deinit来标识,类似于构造器用init来标识. 原理: Swift会自动释放不再需要的实例以释放资源.Swift通 ...

  3. hdu2073递推题

    无限的路 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissio ...

  4. Android开发之屏幕方向

    一.处理屏幕方向变化的两种技术 1.锚定方法 2.调整大小和重新定位,这种方法一般是分别为横向和纵向两种模式各自定义用户界面xml界面文件,当方向变化时读取对应的界面配置文件即可. 二.检测屏幕方向改 ...

  5. .NET生成PDF文件

    C#未借助第三方组件,自己封装通用类,生成PDF文件. 调用方式: //路径 string path = @"C:\yuannwu22.pdf"; //内容 string strC ...

  6. CSS自动控制图片大小的代码

    img { max-width: 800px; height: auto; } 代码中的max-width:800px限制图片的最大宽度为800像素,而下面的hight:auto很关键,可以保证图片有 ...

  7. Spring JdbcTemplate批量操作数据库

    个人总结,转载请注明出处:http://www.cnblogs.com/lidabnu/p/5769732.html 还是分两部分:解决什么问题和怎么做. 解决什么问题 提升数据操作性能,因为批量操作 ...

  8. (转)C#中Trim()、TrimStart()、TrimEnd()的用法 .

    C#中Trim().TrimStart().TrimEnd()的用法: 这三个方法用于删除字符串头尾出现的某些字符.Trim()删除字符串头部及尾部出现的空格,删除的过程为从外到内,直到碰到一个非空格 ...

  9. [上传下载] C# UpLoadFiles文件上传类 (转载)

    点击下载 UpLoadFiles.zip 主要功能如下 /// <summary> /// 上传文件 /// </summary> /// <param name=&qu ...

  10. Handler 原理分析和使用之HandlerThread

    前面已经提到过Handler的原理以及Handler的三种用法.这里做一个非常简单的一个总结: Handler 是跨线程的Message处理.负责把Message推送到MessageQueue和处理. ...