[VC/MFC]Ini配置文件操作(含下载链接)

0 篇文章 0 订阅

一、INI操作类引入

   我们在开发程序时,经常会存储一些不是那么重要的信息,这些信息通常满足下列几个特点:

            1、数据量较少

            2、无需保密

            3、需要长时间存储

    这个时候,如果我们使用数据库,就显得完全没有必要了。当然,你也可以使用xml等方式进行存储,但对于不会使用xml等配置读写操作的人来说,xml又显得麻烦了那么一丢丢,学习xml其实不难,从学习到配置再到使用,十几分钟也能搞定。对对于懒人来说,ini读写操作更为方便,因为他可以让你1、2分钟就学会使用。Why?

            1、使用INI文件读写,只需要一个.h和.cpp

            2、所有可用函数加起来不超过10个,简洁易懂

二、INI文件结构介绍

    ini配置文件本质就是一个txt文档,但后缀名为ini,如my.ini。文档中仅有三部分,分别是节点(Node)、键(Key)、值(Value)。

    

    可以很清晰明了的看出,node表示一个模块或者一个功能,key1,key2等分别是该模块/功能下的属性,而value1、value2等则为对应属性的值。

    图中login模块记录了用户的账户和密码,那么下次运行程序时,程序即可实现自动登录,而不用用户再次进行登录操作。

三、函数介绍

    1) 设置INiI文件路径

        BOOL SetFileName(LPCTSTR lpFileName);

        这是读写ini文件的前提,目的是设置配置文件的绝对路径,注意,是绝对路径。该操作类无法识别相对路径。

        设置成功返回TRUE。


    2)创建/修改指定键值

        BOOL SetValue(LPCTSTR lpSection, LPCTSTR lpKey, LPCTSTR lpValue,bool bCreate=true);

            lpSection:节点名称

            lpKey:键

            lpValue:要设置的值

            bCreate:如果该节点/键不存在,是否自动创建

        设置成功返回TRUE。


    3) 获取指定键值

        CString GetValue(LPCTSTR lpSection, LPCTSTR lpKey)

        获取节点为lpSection,key为lpKey的值。

        此处我返回的是CString,非MFC开发,将其改为对应字符串类即可。


    4) 删除节点

BOOL DelSection(LPCTSTR strSection); 

        删除节点名称为strSection的节点以及该节点所有键值。

        设置成功返回TRUE。


    5) 删除键值

        BOOL DelKey(LPCTSTR lpSection, LPCTSTR lpKey); 

        

         删除节点名称为strSection的节点下键名为lpKey的属性。

        设置成功返回TRUE。


    6) 枚举全部节点

        int GetSections(CStringArray& arrSection); 

        传入一个字符串数组,获取ini文件中所有的节点名称,并返回节点数目。

        此处传入的是MFC下的字符串数组CStringArray,代码也是非常简单,非MFC下直接修改传入参数类型以及函数中给数组赋值的方式即可。

    7) 枚举节点中的所有键值

        int GetKeyValues(CStringArray& arrKey,CStringArray& arrValue,LPCTSTR lpSection); 

        获取节点名为lpSection的节点下所有的键与值,返回键的数量。

        arrKey与arrValue均为传入参数。非MFC下修改方式见6

    8) 删除所有节点(清空文件)

BOOL DelAllSections();

        清空ini文件,成功返回TRUE。

    四、下载链接

        http://download.csdn.net/download/xyz59886/10266714

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值