利用ACE来读取.ini配置文件


利用ACE来读取.ini配置文件

利用ACE来读取配置文件需要用到ACE_Configuration类的子类。ACE_Configuration类仅仅为配置数据库提供了必须的接口,它的子类ACE_Configuration_Heap和ACE_Configuration_Win32Registry则实现了这些接口。应用时则采用这两个子类来完成功能。

        ACE_Configuration_Heap用ACE的分配器来管理表征配置数据库的内存。一个持久化得堆能够用来持久化的保存配置信息。

       读取配置信息用到的另一个类为ACE_Config_ImpExp_Base。该类是从文件导入/导出配置信息的基类。该类为保存在文件中的配置对象提供了基础功能,它需要一个ACE_Configuration对象来管理数据。ACE_Ini_ImpExp类能够通过文件名导入标准的.ini文件和.conf文件。

 

关键代码如下所示:

int GetCfgFromIni(const char* pchAppName,//节点名

                            const char* pchKeyName,//关键字名

                            const char* pchFileName)//文件名

       {

              int iRet = 0;

              ACE_Configuration_Heap cf;

              if( cf.open() == 0 )//使用ACE_Configuration对象前必须首先调用该函数

              {

                     ACE_Ini_ImpExp import(cf);

                     if (import.import_config( pchFileName )==0)//通过文件名来导入配置信息

                     {

                            const ACE_Configuration_Section_Key &root = cf.root_section ();

                            ACE_Configuration_Section_Key Section;

                           

                            if( cf.open_section( root, pchAppName, 0, Section ) == 0) //0表示该节点必须存在

                            {

                                   unsigned int nValue;

                                   ACE_TString strV;

                                   if(cf.get_string_value( Section, pchKeyName, strV )==0)

                                   {

                                          sscanf( strV.c_str(), "%d", &nValue );

                                          iRet = nValue;

                                   }

                                   else

                                   {

                                          iRet = -1

                                   }

                            }

                            else

                            {

                                   iRet = -1;

                            }

                     }

                     else

                     {

                            iRet = -1;

                     }

              }

              else

              {

                     iRet = -1;

              }

              return iRet;

       }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值