INI解析模块的C++实现
2016-05-09 14:41
507 查看
INI文件格式是某些平台或软件上的配置文件的非正式标准,以节(section)和键(key)构成,常用于微软Windows操作系统中。
[section]
name=value
; 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配置至文件。
节(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配置至文件。
相关文章推荐
- 我的c\c++之旅(三)——堆排序
- signal.h和stdarg.h
- C语言实现开机与关机
- 第7周 C语言程序设计(新2版) 练习1-7 打印一个EOF值
- 第7周 C语言程序设计(新2版) 练习1-8 统计空格、制表、换行数程序
- 一致性哈希算法与C++实现
- 我的c\c++之旅(八)——Shell排序
- ubuntu14.04 boost安装
- 第7周 C语言程序设计(新2版) 例题1 统计输入的字符数
- C语言正则表达式详解 regcomp() regexec() regfree()详解
- C++ Primer Chap1-4 总结
- C语言之内存对齐数
- 在Eclipse上通过Cygwin编译C++
- C++实验5—数组分离
- c++无法解析的外部符号
- C++primer :const限定符
- C++产生随机数的方法总结
- setjmp.h
- [C++]封装排序二叉树&随机数生成(c++11)
- Palindromic Squares