最近开始学C++ 写一个项目
操作INI的API不是很好用..网上搜索的几个类也不太合用.呵
就随便写了一个.支持INI注释读写..
注释读写这个功能可能很少用到..只是因为保存原有注释,
反正都读出来了.还不如多个写的功能..只是多个函数
工程演试下载: http://download.youkuaiyun.com/detail/phptits/7675613
操作INI的API不是很好用..网上搜索的几个类也不太合用.呵
就随便写了一个.支持INI注释读写..
注释读写这个功能可能很少用到..只是因为保存原有注释,
反正都读出来了.还不如多个写的功能..只是多个函数
工程演试下载: http://download.youkuaiyun.com/detail/phptits/7675613
工程在VS2013下建的
class myiniClass{
public:
int error; //错误值
char * errinfo; //错误信息
char * iniPath; //ini文件路径
map<string, string> iniData; //ini数据表
myiniClass();
~myiniClass();
/* 打开INI文件
** 参数1: (char *)文件路径
***********************************************
** 返回: 成功 0 MYINI_OK; 失败 -1 MYINI_NO
** 失败: error 设置为 -1 MYINI_NO
*/
int open(char * path);
/* 读取项目的字符串数据
** 参数1: (char *)要读取键名 (如: Section/Keys)
***********************************************
** 返回: 返回相应键的数据
** 失败: error 设置为 -1 MYINI_NO
*/
const char * readString(char * key);
/* 读取项目整类型数据
** 参数1: (char *)要读取键名 (如: Section/Keys)
***********************************************
** 返回: 返回相应键的数据;
** 失败: error 设置为 -1 MYINI_NO
*/
int readInt(char * key);
/* 读取项目的注释
** 参数1: (char *)要读取键名 (如: Section/Keys)
***********************************************
** 返回: 返回相应键的注释
** 失败: error 设置为 -1 MYINI_NO
*/
const char * readNote(char * key);
/* 写入项目的数据
** 参数1: (char *)要写入键名 (如: Section/Keys)
** 参数1: (const char *)要写入的数据
***********************************************
** 返回: 成功 0 MYINI_OK; 失败 -1 MYINI_NO
** 失败: error 设置为 -1 MYINI_NO
*/
int writeData(char * key, const char * data);
/* 写入项目的注释
** 参数1: (char *)要写入键名 (如: Section/Keys)
** 参数1: (const char *)要写入的注释内容
***********************************************
** 返回: 成功 0 MYINI_OK; 失败 -1 MYINI_NO
** 失败: error 设置为 -1 MYINI_NO
*/
int writeNote(char * key, const char * data);
/* 保存INI文件
** 无参数
***********************************************
** 返回: 成功 0 MYINI_OK; 失败 -1 MYINI_NO
** 失败: error 设置为 -1 MYINI_NO
*/
int save(void);
};
myiniClass mini;
mini.open("./config.ini");
mini.writeData("test/path", "c:/windows/");
mini.writeNote("test/path", "#路径必须以 / 结尾");
mini.writeData("test/max", "1");
//写没有项目的注释分出错
mini.writeNote("test/xxx", "#路径必须以 / 结尾");
cout << mini.error << " " << mini.errinfo << endl;
cout << "读取字符串: " <<mini.readString("test/path") << endl;
cout << "读取整数: " << mini.readInt("test/max") << endl;
//读取一个不存在的项目
mini.readString("test/oooo");
cout << mini.error << " " << mini.errinfo << endl;