zoukankan      html  css  js  c++  java
  • INI解析模块的C++实现

    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配置至文件。

  • 相关阅读:
    关于根据索引 删除队
    Vs 2012 编译C 语言
    动态绑定 dgvlist 列
    自定义控件闪烁问题
    程序员都不读书,但你应该读
    对于委托的理解 委托和事件
    ​label 中 文字的位置
    vs2010 折叠C/c++中的if
    关于动态创建控件性能提高 以及 SuspendLayout & ResumeLayout 的使用
    c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)
  • 原文地址:https://www.cnblogs.com/jojodru/p/5473914.html
Copyright © 2011-2022 走看看