(读者可以点击这里获得源代码,注意解压后将boot.ini拷贝到e:\,以便程序运行找到文件)
头文件cfgdata.h
// cfgdata.h: interface for the ccfgdata class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(afx_cfgdata_h__a40cdb9a_0e44_49e6_a460_505d76ba6414__included_)
#define afx_cfgdata_h__a40cdb9a_0e44_49e6_a460_505d76ba6414__included_
#if _msc_ver > 1000
#pragma once
#endif // _msc_ver > 1000
class ccfgdata
{
protected:
//组到配置数据的映射
cmapstringtoptr m_strmapmap;
//当前组
cstring m_strgroup;
public:
//构造配置数据
ccfgdata();
//析构配置数据
virtual ~ccfgdata();
//从文件加载配置数据
/*
参数: lpctstr strfilename 加载文件的名称
返回值:无
*/
void loadcfgdata(lpctstr strfilename);
//将配置数据保存到文件
/*
参数: lpctstr strfilename 保存文件的名称
返回值:成功返回true 失败返回false
*/
bool savecfgdata(lpctstr strfilename);
//将配置数据保存到字符串
/*
参数: cstring* pstr 要保存的字符串指针
返回值:成功返回true 失败返回false
*/
bool savetostr(cstring* pstr);
//设置当前读取的组
/*
参数: 当前组名称
返回值:无
*/
void setgroup(lpctstr strgroup);
//修改或者添加一条当前组中的数据
/*
参数: lpctstr strkey 要修改的数据的键值
lpctstr strvalue要修改的数据的内容
返回值:
备注: 如果当前组在配置数据中存在,则修改或者添加该组对应键值的数据,如果当前组灾配置数据中不存在,则先创建该组
*/
bool setdata(lpctstr strkey,lpctstr strvalue);
//得到当前组中对应键值中字符串类型的数据
/*
参数: lpctstr strkey 要得到的数据的键值
lpctstr strvalue要得到的数据的内容
返回值:找到数据返回true,否则返回false
*/
virtual bool getstrdata(lpctstr strkey,cstring &strvalue);
//得到long型的数据
/*
参数: lpctstr strkey 要得到的数据的键值
long lvalue 要得到的数据的值
返回值:找到数据返回true,否则返回false
*/
virtual bool getlongdata(lpctstr strkey,long &lvalue);
protected:
//释放配置数据所占用的内存
/*
参数: 无
返回值:无
*/
void removeall();