`
sogo6
  • 浏览: 110825 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

使用ACE遍历读取ini文件

    博客分类:
  • ACE
 
阅读更多
int ReadFromIni(const char* szIni)  
{  
    ACE_Configuration_Heap config;
    ACE_Ini_ImpExp ini(config);

    config.open();
    if(-1 == ini.import_config(szIni))
    {  
        //ACE_ERROR_RETURN( (LM_ERROR,"error open config file\n"),-1 );  
        cout << "error open config file" << endl;
        return -1;
    }

    ACE_Configuration_Section_Key key_network;
    int retCode = config.open_section(config.root_section(), "mc_app", 0, key_network);  
    cout << "retCod = " << retCode << endl;

    ACE_TString value;
    config.get_string_value(key_network,"mc_ip", value);
    cout << "ip = " << value.c_str() << endl;

    config.get_string_value(key_network,"mc_port",value);  
    int port=atoi(value.c_str());  

    cout << "port = " << port << endl;  

    int iIndex = 0;
    while (true)
    {
        retCode = config.enumerate_sections(config.root_section(), iIndex, value);
        if (1 == retCode)
        {
            break;
        }
        if (retCode < 0)
        {
            cout << "lasterror = " << ACE_OS::last_error() << endl;
            break;
        }
        cout << "[" << value.c_str() << "]" << endl;

        retCode = config.open_section(config.root_section(), value.c_str(), 0, key_network);
        if (retCode < 0)
        {
            cout << "lasterror = " << ACE_OS::last_error() << endl;
            //iIndex ++;
            //continue;
            break;
        }

        int valueIndex = 0;
        ACE_TString valueName;
        ACE_Configuration::VALUETYPE  valueType;
        while (true)
        {
            retCode = config.enumerate_values(key_network, valueIndex, valueName, valueType);
            if (1 == retCode)
            {
                break;
            }
            if (retCode < 0)
            {
                cout << "lasterror = " << ACE_OS::last_error() << endl;
                break;
            }
            cout << "valueName=" << valueName << ", valueType=" << valueType << endl;
            valueIndex ++;
        }

        // 
        iIndex ++;
    }


    //ACE_DEBUG((LM_NOTICE,"will listen on port %d\n",port));  

    return 0;  
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics