您的位置:首页 > 其它

ACE操作ini配置文件

2009-04-25 11:22 302 查看
配置文件(后缀为.ini)的文件主要用作配置程序启动时的一些参数配置,每一个配置行的格式为:

name=value

name:配置参数名称

value:配置参数的值
=:配置分隔符

配置参数可以根据功能相关性对配置行进行分组,每一个组称为一个Section,Section没有显示的终止标识,一个新的Section的开始(或文件结束)即表示前一个Section的终止.

下面为一个配置文件样例:

[PROCESS]
Count="30,31,32,33,34,35,36,37,38,39"
Threads=00000064
FilePath=./TextFile/
[Network]
Remote="49,6e,69,46,69,6c,65,56,32"

ACE可能方便地对配置文件进行操作(包括读取配置文件和生成配置文件),先看一个ACE如何生成上述中的配置文件.

#include <ace/Log_Msg.h>
#include <ace/Configuration.h>
#include <ace/Configuration_Import_Export.h>
int ACE_TMAIN(int argc, ACE_TCHAR* argv[])
{
//Configuration heap
ACE_Configuration_Heap iniFile;
int nError = iniFile.open();
if (nError != 0)
{
return -1;
}
//configuration section key
ACE_Configuration_Section_Key skRoot = iniFile.root_section();
ACE_Configuration_Section_Key skType;
if (iniFile.open_section(skRoot,ACE_TEXT("PROCESS"),1,skType))
{
return -1;
}
//set setion & value
nError = iniFile.set_integer_value(skType,ACE_TEXT("Threads"),100);
nError = iniFile.set_string_value(skType,ACE_TEXT("FilePath"),ACE_TString(ACE_TEXT("./TextFile/")));
nError = iniFile.set_binary_value(skType,ACE_TEXT("Count"),"0123456789",10);
//定义另一个configuration section
ACE_Configuration_Section_Key skNetwork;
if (iniFile.open_section(skRoot,ACE_TEXT("Network"),1,skNetwork))
{
return -1;
}
nError = iniFile.set_string_value(skNetwork,ACE_TEXT("Remote"),ACE_TString(ACE_TEXT("192.168.0.10")));
nError = iniFile.set_binary_value(skNetwork,ACE_TEXT("Remote"),"IniFileV2",9);
//创建配置导出文件
ACE_Ini_ImpExp iiFile(iniFile);
nError = iiFile.export_config(ACE_TEXT("./IniFile.ini"));
if (nError)
{
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("Error populating original config ")
ACE_TEXT ("object (%d)/n"),
nError),
-1);
}

return 0;
}


ACE生成配置文件使用到几个类:

ACE_Configuration_Heap:配置数据结构

ACE_Configuration_Section_Key:配置Section
ACE_Ini_ImpExp:导出配置文件

配置参数的类型分为三种:(1)字符串格式;(2)整数格式;(3)二进制格式.ACE操作这三种格式分别通过使用三个不同的成员函数:(1)set_string_value;(2)set_integer_value;(3)set_binary_value.需要注意的是生成的整数是以16进行表示.

函数调用方式是先在内存中生成相应的配置文件的数据,所有的参数的创建都是在此内存中进行操作,所有的参数设置完成之后,再通过ACE_Ini_ImpExp将数据导出为配置文件.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: