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. JSP http头消息

    头 描述 Accept 指定MIME类型 Accept-Charset 编码,例如utf-8 Accept-Encoding 编码方式,例如使用gzip压缩 Accept-Language 语言,例如 ...

  2. BBC 生命大设计

    BBC霍金的生命的意义一视频中,有一段图案特别漂亮,于是我就写了一下,具体的繁殖规则是这样的:有存活体和死方格两个部分构成,我分别用 ' * ' 和 ‘  ’ 表示.当一个存活体周围有超过三个存活体时 ...

  3. SQL Server存储内幕系列

    http://blog.itpub.net/355374/list/1/?cid=75087

  4. classpath多个包添加

    转的: 把某目录下的所有子目录和子目录下面的下层和更下层目录也添加到CLASSPATH里面,更具需求写了两句,发上来分享,备忘. 在Linux下可以通过这样的方法把/opt/.../lib目录下的所有 ...

  5. MapReduce中的Join算法

    在关系型数据库中Join是非常常见的操作,各种优化手段已经到了极致.在海量数据的环境下,不可避免的也会碰到这种类型的需求,例如在数据分析时需要从不同的数据源中获取数据.不同于传统的单机模式,在分布式存 ...

  6. Android开发之TextView的下划线添加

    如何给TextView添加下划线呢,最近项目中需要这个,于是就用代码添加了下划线功能.主要就是用Paint的setFlags方法来实现,具体如下: ((TextView)mScrollView.fin ...

  7. Java基础知识强化之集合框架笔记64:Map集合之ArrayList嵌套HashMap

    1. ArrayList集合嵌套HashMap集合并遍历.  需求:         假设ArrayList集合的元素是HashMap.有3个.         每一个HashMap集合的键和值都是字 ...

  8. Java基础知识强化之集合框架笔记54:Map集合之HashMap集合(HashMap<String,String>)的案例

    1. HashMap集合 HashMap集合(HashMap<String,String>)的案例 2. 代码示例: package cn.itcast_02; import java.u ...

  9. python实时处理log文件脚本

    这个Python脚本是用来对实时文件的内容监控,比如 Error 或者 time out 字段都可以进行自定义:算是我的第一个真正的Python脚本,自己感觉还是比较臃肿,不过打算放到blog上记录一 ...

  10. mybatis根据property获取column

    mybatis根据property获取column mybatis根据类的属性获取xml文件中对应的column mybatis获取xml文件中property对应的column >>&g ...