`
sogo6
  • 浏览: 112256 次
  • 性别: 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;  
}
分享到:
评论

相关推荐

    C# 读取ini配置文件

    这段代码首先定义了一个`IniReader`类,包含两个静态方法:`ReadIni`用于读取ini文件,`ConnectToDatabase`用于使用ini文件中的配置信息建立数据库连接。在`Main`方法中,我们调用这两个方法来完成整个流程。 需要...

    IO遍历目录下所有文件

    我们将深入探讨如何使用编程语言(例如Java或Python)来遍历一个目录及其子目录,读取Access数据库中的图片存储路径,并与服务器上的图片路径进行比较,以及如何删除指定的文件。 首先,让我们了解如何遍历目录。在...

    ACE 文件流读取

    在本例中,我们关注的是"ACE文件流读取",这可能指的是使用ACE(Adaptive Communication Environment)库进行文件操作。ACE是一个跨平台的开源C++库,它提供了一套强大的网络编程工具,同时也支持文件I/O操作。下面...

    在vue中使用ace编辑器

    安装完成后,在 Vue 单文件组件(Vue SFC)中引入并使用 Ace 编辑器: ```html &lt;ace-editor v-model="code" :mode="'javascript'" :theme="'chrome'" :readOnly="false" :width="'100%'" :height="'300px'"&gt;&lt;/...

    ACE 客户端与服务器 文件传输

    在"ACE客户端与服务器文件传输"这个场景下,我们将探讨如何使用ACE库来实现在客户端和服务器之间进行文件的按名传输。 首先,我们需要了解文件传输的基本概念。文件传输是网络通信中的一个常见任务,通常涉及到FTP...

    使用ACE和QT实现UDP通讯

    通常,我们需要定义一种自定义的数据结构,包含必要的头部信息(如源地址、目标地址、序列号等),然后使用ACE的`UDP_SOCK_Stream`类进行读写操作。 在Qt中,你可以使用`QTcpSocket`的派生类`QUdpSocket`来处理UDP...

    ACE 网络编程库文件源代码

    ACE6.3.0 好东西,备份使用。 ACE 网络编程库文件源代码

    ACE VC2005的lib文件

    总的来说,ACE库在VC2005环境下为开发者提供了强大的网络通信和并发处理工具,通过`ACE.lib`、`ACEd.dll`和`ACE.dll`这些文件,可以方便地在C++项目中集成和使用ACE的功能。理解这些文件的作用和使用方法,对于高效...

    NDK下使用ACE示例

    本文将详细介绍如何在Android NDK环境下集成并使用ACE库。 首先,理解NDK的基本概念至关重要。NDK是一组工具,允许开发者在Android应用中使用本地代码,这在需要高效计算或访问硬件特性时非常有用。与Java SDK不同...

    使用ace_tao开发企业级应用.pdf

    ACE支持多种编译器,需要根据使用的编译器选择相应的配置文件。 - **编译安装**:执行编译脚本,通常情况下,可以通过执行`make`命令来进行编译。编译完成后,可以通过`make install`将ACE/TAO安装到指定目录。 ###...

    ACE使用说明.rar

    这个压缩包“ACE使用说明.rar”包含了关于ACE的详细学习资料,分为三个部分:上篇是“ACE技术论文集”,中篇是“ACE程序员教程”,下篇是“ACE应用实例”。以下是这些内容可能涵盖的知识点的详细解析: **上篇:ACE...

    ACE文件操作

    通过对ACE文件操作的多种方法的探讨,我们可以看到,从最基础的逐字符读写,到使用缓冲区的块读写,再到利用内存映射文件技术,每种方法都有其适用场景和优劣。在实际应用中,开发者应根据文件大小、系统资源和性能...

    破解文件密码HAC-ZIP_RAR_ACE_ARJ_PDF

    破解文件密码,文件格式有:HAC-ZIP_RAR_ACE_ARJ_PDF-fy

    C#excel导入报错Microsoft.ACE.OLEDB.12.0.rar

    在C#编程中,当你尝试从Excel文件读取数据或者将数据写入Excel时,可能会遇到“Microsoft.ACE.OLEDB.12.0”这个错误。这个问题通常出现在尝试使用ACE OLEDB提供程序(Access Database Engine)连接到Excel文件时,而...

    树的遍历,递归和非递归实现方式,工程源码

    非递归实现通常使用栈或队列,可以有效地处理大树,但可能需要更复杂的逻辑来控制遍历顺序。 在Dep C++工程文件中,你可以找到这些遍历方法的实现,这对于理解和掌握树的遍历至关重要。通过阅读和分析这些源码,你...

    ACE6.1.0库文件

    为了使用ACE6.1.0,开发者需要按照以下步骤操作: 1. 解压ACE_wrappers压缩包。 2. 打开Visual Studio 2010,并创建一个新的项目。 3. 将ACE库的源代码和头文件添加到项目的include路径。 4. 配置项目设置,确保...

    ACE js插件与例子

    在`test_ace`文件中,你可以找到一些使用ACE插件的示例代码。这些示例可能包含了如何创建编辑器、设置主题、切换语言模式、添加事件监听等常见操作。通过学习和运行这些示例,可以更好地理解和掌握ACE的使用方法。 ...

    ACE Admin官方文档

    官方文档是学习和使用 ACE Admin 的重要参考资料,包含了所有组件的详细介绍和示例,帮助开发者理解和应用。 文档中的 "ace_admin1.3.1" 文件夹很可能包含了以下内容: 1. **CSS 和 JS 文件**:ACE Admin 的核心...

    ACE完整牛逼定时器

    在这个“ACE完整牛逼定时器”中,我们将深入探讨ACE库中的定时器机制,以及如何在项目中实现和使用它。 首先,我们要理解定时器在软件开发中的作用。定时器主要用于在特定时间间隔后执行某些操作,例如定期检查任务...

    ACE使用例程

    这个"ACE使用例程"的压缩包文件可能包含了若干个示例程序,用于展示如何有效地使用ACE库来开发分布式系统、网络应用或者进行通信处理。 ACE库的核心特性包括: 1. **异步I/O**:ACE支持多种异步I/O模型,如事件多路...

Global site tag (gtag.js) - Google Analytics