今天有需要写一个ini配置文件,我之前一直没弄过,后来上网查了一下,一共有两种方法,一种是windows api提供了两个函数,一种是自己手搓的文件读写。
先来看看win api的吧,因为比较简单:
BOOL WritePrivateProfileString(
LPCTSTR lpAppName, // INI文件中的一个字段名[节名]可以有很多个节名
LPCTSTR lpKeyName, // lpAppName 下的一个键名,也就是里面具体的变量名
LPCTSTR lpString, // 键值,也就是数据
LPCTSTR lpFileName // INI文件的路径
);
DWORD GetPrivateProfileString(
LPCTSTR lpAppName, // INI文件中的一个字段名[节名]可以有很多个节名
LPCTSTR lpKeyName, // lpAppName 下的一个键名,也就是里面具体的变量名
LPCTSTR lpDefault, // 如果lpReturnedString为空,则把个变量赋给lpReturnedString
LPTSTR lpReturnedString, // 存放键值的指针变量,用于接收INI文件中键值(数据)的接收缓冲区
DWORD nSize, // lpReturnedString的缓冲区大小
LPCTSTR lpFileName // INI文件的路径
);
下面是我师傅给我的资料,手搓的,脱离winapi,虽然我觉得并没什么卵用,我还是用了上面的方法。
iniFile.h
#ifndef __INI_FILE_H__
#define __INI_FILE_H__
#include <map>
#include <string>
#include <iostream>
class CIniFile
{
public:
CIniFile();
~CIniFile();
void SetFile(std::string filename);
int ReadInteger(std::string selection, std::string key, int defvalue = 0);
void WriteInteger(std::string selection, std::string key, int value);
std::string ReadString(std::string selection, std::string key, std::string defvalue = ""