• Poco 配置文件读取


    1,ini格式文件

    [myApplication]
    somePath = C: est dat.dat
    someValue = 123

    #include <iostream>
    using namespace std;
    
    #include "Poco/Util/Application.h"
    #include "Poco/Path.h"
    using namespace Poco::Util;
    
    #include "Poco/AutoPtr.h"
    #include "Poco/Util/IniFileConfiguration.h"
    using Poco::AutoPtr;
    using Poco::Util::IniFileConfiguration;
    
    int main(int argc, char** argv)
    {
    	AutoPtr<IniFileConfiguration> pConf(new IniFileConfiguration("Test.ini"));
    	std::string path = pConf->getString("myApplication.somePath");
    	int svalue = pConf->getInt("myApplication.someValue");
    	svalue = pConf->getInt("myApplication.asomeValue",456);
    	std::cout << path << endl;
    	cout << svalue << endl;
    
    	return 0;
    }
    


    2:porperties 格式文件

    key1 = value1
    key2:123
    key3.longValue = this is a Very
    long value
    path=C:\Test.dat

    #include "Poco/AutoPtr.h"
    using Poco::AutoPtr;
    
    #include "Poco/Util/PropertyFileConfiguration.h"
    using Poco::Util::PropertyFileConfiguration;
    
    int main(int argc, char** argv)
    {
    	AutoPtr<PropertyFileConfiguration> pConf;
    	pConf = new PropertyFileConfiguration("test.properties");
    	std::string key1 = pConf->getString("key1");
    	int value1 = pConf->getInt("key2");
    	std::string logV = pConf->getString("key3.longValue");
    	std::string path = pConf->getString("path");
    	cout << key1 << endl;
    	cout << value1 << endl;
    	cout << logV << endl;
    	cout << path << endl;
    
    	return 0;
    }

    3 : xml 格式文件

    <config>
    <prop1>value1</prop1>
    <prop2>123</prop2>
    <prop3>
    <prop4 attr="value3" />
    <prop4 attr="value4" />
    </prop3>
    </config>

    #include "Poco/AutoPtr.h"
    using Poco::AutoPtr;
    
    #include "Poco/Util/XMLConfiguration.h"
    using Poco::Util::XMLConfiguration;
    
    int main(int argc, char** argv)
    {
    	AutoPtr<XMLConfiguration> pConfig(new XMLConfiguration("test.xml"));
    	std::string prop1 = pConfig->getString("prop1");
    	cout << prop1 << endl;
    
    	int prop2 = pConfig->getInt("prop2");
    	cout << prop2 << endl;
    
    	std::string prop3 = pConfig->getString("prop3");
    	cout << prop3 << endl;
    	
    	std::string prop4 = pConfig->getString("prop3.prop4");
    	cout << prop4 << endl;
    	prop4 = pConfig->getString("prop3.prop4[@attr]");
    	cout << prop4 << endl;
    	prop4 = pConfig->getString("prop3.prop4[1][@attr]");
    	cout << prop4 << endl;
    
    	return 0;
    }


  • 相关阅读:
    Dynamics 365/CRM 实体设计技巧
    Dynamics 365/CRM 保存之后触发onchange
    编写C#程序,计算去除最大值和最小值之后的平均值
    Dynamics 365 WebResourceUtility 工具更新
    No sandboxworker process or sandbox hosts are currently avaliable
    C#
    Dynamics CRM 365 and Azure Service Bus – Queue
    双for循环
    java switch 的练习
    java__if_else 的练习
  • 原文地址:https://www.cnblogs.com/wjchang/p/3671669.html
Copyright © 2020-2023  润新知