自制的一个读写ini文件的类

自制的一个读写ini文件的类

ID:34494325

大小:42.93 KB

页数:11页

时间:2019-03-06

自制的一个读写ini文件的类_第1页
自制的一个读写ini文件的类_第2页
自制的一个读写ini文件的类_第3页
自制的一个读写ini文件的类_第4页
自制的一个读写ini文件的类_第5页
资源描述:

《自制的一个读写ini文件的类》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、一个手工读写INI文件的类Windows中有GetPrivateProfileString和WritePrivateProfileString函数可以进行读写INI配置文件,但这两个函数每取出一个数据,都要打开文件,在文件中进行搜索,这样处理的效率肯定会很慢,因此下面提供了一个将配置文件读入内存中的做法,这样做的好处是一次读取文件,快速搜索(使用Map映射)。可以将所有数据全部保存成字符串或者文件。INI配置文件主要由四部分组成:组、键值、内容、注释和空行,下面给出一个例子文件进行说明文件:E:boot.ini[bootloader];这里是一个组,下面的所有配置数据隶属于该组t

2、imeout=1;这里在等于好前面的是一个键值,等号后面的是一个内容default=multi(0)disk(0)rdisk(0)partition(2)WINNT;下面一行是一个空行[operatingsystems];所有在';'后面的字符都属于注释,本程序不支持REM形式的注释multi(0)disk(0)rdisk(0)partition(2)WINNT="MicrosoftWindows2000Professional"/fastdetect;sadfkl;C:="MicrosoftWindows"好了,知道了INI文件的结构,开始分析INI文件读入内存后应使用的数

3、据结构。一个INI文件可以看作是由一些组以及每个组下面的数据组成的,组是字符串形式的,而数据是一个比较复杂的对象。为了搜索的方便,所以这里采用了CMapStringToPtr来组织整个INI文件,这样的话可以由组的字符串方便地查询到该组中的数据一个组下面的数据是由一些键值—à内容组成的映射关系,所以使用CMapStringToString来组这这些数据是最好不过的选择了。下面给出这个类的头文件和实现部分。给出之前简单介绍该类的用法:读取上述E:boot.ini文件:#include"cfgdata.h"CCfgDataCfgData;//LoadINI文件CfgData.Load

4、CfgData("E:\boot.ini");CStringstr;longl=0;//设置当前组CfgData.SetGroup("bootloader");//读取long型数据到变量lCfgData.GetLongData("timeout",l);//读取字符串型数据到变量strCfgData.GetStrData("default",str);//设置当前组CfgData.SetGroup("operatingsystems");//读取字符串型数据到变量strCfgData.GetStrData("multi(0)disk(0)rdisk(0)partition(2)

5、\WINNT",str);//读取字符串型数据到变量strCfgData.GetStrData("C:\",str);//将整个配置数据保存进入字符串中CfgData.SaveToStr(&str);//将整个配置数据保存进入文件中,注意配置数据相互之间没有顺序关系,//所以可能组和组之间、一个组的几个键值--->内容配对之间的顺序将会//和以前不一致,另外所有的注释和空行丢失CfgData.SaveCfgData("E:\boot2.ini");(读者可以点击这里获得源代码,注意解压后将boot.ini拷贝到E:,以便程序运行找到文件)头文件CfgData.h//CfgD

6、ata.h:interfacefortheCCfgDataclass.////////////////////////////////////////////////////////////////////////#if!defined(AFX_CFGDATA_H__A40CDB9A_0E44_49E6_A460_505D76BA6414__INCLUDED_)#defineAFX_CFGDATA_H__A40CDB9A_0E44_49E6_A460_505D76BA6414__INCLUDED_#if_MSC_VER>1000#pragmaonce#endif//_MSC_VER

7、>1000classCCfgData{protected://组到配置数据的映射CMapStringToPtrm_StrMapMap;//当前组CStringm_strGroup;public://构造配置数据CCfgData();//析构配置数据virtual~CCfgData();//从文件加载配置数据/*参数:LPCTSTRstrFileName加载文件的名称返回值:无*/voidLoadCfgData(LPCTSTRstrFileName);//将配置数据保存

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。