说明:
本来想自己写日志文件解析,但随手一搜就搜到了(不得不说就是偷懒O(∩_∩)O哈哈哈~)
本库作者github地址
使用:
下载:git clone https://github.com/Winnerhust/inifile2.git
将头文件,cpp文件加入自己的项目中即可,无需做太多修改,可加入自己的日志。
常用的API:
/*打开并解析一个名为fname的INI文件*/
intload(conststring &fname);
/*将内容保存到当前文件*/
intsave();
/*将内容另存到一个名为fname的文件*/
intsaveas(conststring &fname);
/*获取section段第一个键为key的值,并返回其string型的值*/
stringgetStringValue(conststring §ion,conststring &key,int&ret);
/*获取section段第一个键为key的值,并返回其int型的值*/
intgetIntValue(conststring §ion,conststring &key,int&ret);
/*获取section段第一个键为key的值,并返回其double型的值*/
doublegetDoubleValue(conststring §ion,conststring &key,int&ret);
/*设置section段的注释*/
intsetSectionComment(conststring §ion,conststring &comment);
测试文件dial_cfg:
[addr]
ip =127.0.0.1
#agent info
[agent]
port= 9294
[dial]
port = 9294
#dial info
[log]
path=/var/log
测试代码:
#include "inifile.h"
#include <iostream>
int main()
{
int ret = 0;
inifile::IniFile ini;
ini.load("dial_cfg");
string ip = ini.getStringValue("addr","ip",ret);
cout<<"ip="<<ip<<",ret="<<ret<<endl;
cout<<"dial_port="<<ini.getIntValue("dial","port",ret)<<endl;
cout<<"ret="<<ret<<endl;
cout<<"agent_port="<<ini.getIntValue("agent","port",ret)<<endl;
cout<<"ret="<<ret<<endl;
cout<<"log_path="<<ini.getStringValue("log","path",ret)<<endl;
cout<<"ret="<<ret<<endl;
ini.setValue("dial","port","22222","");
ini.setValue("people","hww","18","xxx");
cout<<"after change dial_port="<<ini.getIntValue("dial","port",ret)<<endl;
cout<<"ret="<<ret<<endl;
cout<<"after set people="<<ini.getIntValue("people","hww",ret)<<endl;
ini.saveas("dial.ini");
return 0;
}
运行后重新保存文件dial.ini:
[addr]
ip=127.0.0.1
#agent info
[agent]
port=9294
[dial]
port=22222
#dial info
[log]
path=/var/log
[people]
#xxx
hww=18
总结:
支持解析ini文件
支持修改、保存ini文件
支持设置多个注释符,默认为“#”和';'
支持参数名重复
网友评论