C++ 中使用boost::property_tree读取解析ini文件

boost 官网 http://www.boost.org/

下载页面 http://sourceforge.net/projects/boost/files/boost/1.53.0/

我下载的是 boost_1_53_0.tar.gz

使用系统  ubuntu 12.10

 

一、解压

[plain] view plaincopy

 

  1. tar -zxvf  boost_1_53_0.tar.gz  

得到一个文件夹 boost_1_53_0,  拷贝其子目录 boost 到以下路径

[plain] view plaincopy

 

  1. /usr/local/include/  

 

二、编写读取解析ini的类文件

ini.h

[cpp] view plaincopy

 

  1. /* 
  2.  * File:   ini.h 
  3.  * Author: tsxw24@gmail.com 
  4.  * 
  5.  * Created on 2013年3月18日, 下午2:51 
  6.  */  
  7.   
  8. #ifndef INI_H  
  9. #define INI_H  
  10.   
  11.   
  12. #include <boost/property_tree/ptree.hpp>  
  13. #include <boost/property_tree/ini_parser.hpp>  
  14. #include <string>  
  15. using namespace std;  
  16.   
  17.   
  18. class Ini{  
  19. public:  
  20.     Ini(string ini_file);  
  21.     string get(string path);  
  22.     short int errCode();  
  23. private:  
  24.     short int err_code;  
  25.     boost::property_tree::ptree m_pt;  
  26. };  
  27.   
  28. #endif  /* INI_H */  

 

 

ini.cpp

[cpp] view plaincopy

 

  1. #include "ini.h"  
  2.   
  3.   
  4. Ini::Ini(string ini_file){  
  5.     if (access(ini_file.c_str(), 0) == 0) {  
  6.         this->err_code = 0;  
  7.         boost::property_tree::ini_parser::read_ini(ini_file, this->m_pt);  
  8.     } else {  
  9.         this->err_code = 1;  
  10.     }  
  11. }  
  12.   
  13. short Ini::errCode(){  
  14.     return this->err_code;  
  15. }  
  16.   
  17. string Ini::get(string path){  
  18.     if (this->err_code == 0) {  
  19.         return this->m_pt.get<string>(path);  
  20.     } else {  
  21.         return "";  
  22.     }  
  23. }  

 

 

 

三、测试

main.cpp

[cpp] view plaincopy

 

    1. #include <cstdlib>  
    2. #include <stdio.h>  
    3. #include <iostream>  
    4. #include <string>  
    5. #include "ini.h"  
    6.   
    7. using namespace std;  
    8.   
    9.   
    10.   
    11. /* 
    12.  * 
    13.  */  
    14. int main(int argc, char** argv) {  
    15.     string ini_file = "/home/share/code/CppClass/test1.ini";  
    16.     Ini ini(ini_file);  
    17.   
    18.     cout<<ini.get("public.abc")<<endl;  
    19.   
    20.   
    21.     return 0;  
    22. }  
时间: 2024-10-23 16:27:07

C++ 中使用boost::property_tree读取解析ini文件的相关文章

boost::property_tree读取解析ini文件--推荐

boost::property_tree读取解析ini文件 [cpp] view plaincopy   #include "stdafx.h"   #include <iostream>   #include <boost/property_tree/ptree.hpp>   #include <boost/property_tree/ini_parser.hpp>      int main()   {       boost::property

boost::property_tree读取解析.xml文件

boost::property_tree读取解析.xml文件 1)read_xml 支持中文路径  boost::property_tree::wptree wpt;    std::locale::global(std::locale(""));    boost::property_tree::xml_parser::read_xml("E:\\测试\\test.xml",wpt);  2)get  ptree pt;    read_xml("D:/

JavaScript实现解析INI文件内容的方法_javascript技巧

本文实例讲述了JavaScript实现解析INI文件内容的方法.分享给大家供大家参考,具体如下: .ini 是Initialization File的缩写,即初始化文件,ini文件格式广泛用于软件的配置文件. INI文件由节.键.值.注释组成. 根据node.js版本的node-iniparser改写了个JavaScript函数来解析INI文件内容,传入INI格式的字符串,返回一个json object. function parseINIString(data){ var regex = {

Windows Server 2003中查看和手动配置Boot.ini文件

本文介绍如何在 http://www.aliyun.com/zixun/aggregation/11208.html">Microsoft Windows Server 2003 中查看和手动配置 Boot.ini 文件. 在 Windows Server 2003 中,您可以快速而轻松地找到 Boot.ini 文件以验证或编辑 Microsoft Windows 启动配置并根据需要更改高级 RISC 计算 (ARC) 路径.此外,您还可以向 Boot.ini 文件添加开关. 一.编辑 B

如何使用jsp的 DOM4J 读取 解析 xml文件

如何使用jsp教程的 DOM4J 读取 解析 xml文件 <?xml version="1.0" encoding="GB2312"?> <RESULT>   <VALUE>        <NO>111cn.net</NO>        <ADDR>中国WEB第一站</ADDR>   </VALUE> </RESULT> <%@ page conte

Java中使用开源库JSoup解析HTML文件实例_java

HTML是WEB的核心,互联网中你看到的所有页面都是HTML,不管它们是由JavaScript,JSP,PHP,ASP或者是别的什么WEB技术动态生成的.你的浏览器会去解析HTML并替你去渲染它们.不过如果你需要自己在Java程序中解析HTML文档并查找某些元素,标签,属性或者检查某个特定的元素是否存在的话,那又该如何呢?如果你已经使用Java编程多年了,我相信你肯定试过去解析XML,也使用过类似DOM或者SAX这样的解析器,不过很有可能你从未进行过任何的HTML解析的工作.更讽刺的是,在Jav

java读取解析xml文件实例_java

读取本地的xml文件,通过DOM进行解析,DOM解析的特点就是把整个xml文件装载入内存中,形成一颗DOM树形结构,树结构是方便遍历和和操纵. DOM解析的特性就是读取xml文件转换为 dom树形结构,通过节点进行遍历. 这是W3c关于节点的概念 如果xml中包含有大量的数据,由于dom一次性把xml装入内存中的特性,所以dom不适合于包含大量数据的xml解析.当包含有大量xml的时候,用SAX进行解析比较节省内存. 下面是一个运用DOM进行解析xml文件的例子: xml文件结构如下: <?xm

在Delphi中实现将Font.Style写入INI文件

前不久我编写一个小程序在INI文件中记录字体的属性(颜色值/color,大小/size,字体名/name,样式/style),其中color值和size值可以用数值方式写入INI文件,name是用字符方式写入,但Font.style不是数值型.字符型,也不是布尔型,而是TfontStyles类,无法直接写入INI文件中去,我找了好多相关书籍也没找到方法,也到网络上的Delphi站点去问,也没得到满意的答复,没法子,看来还得自已想办法解决,我通过一系列的摸索实验,终于找到了比较满意的解决方法,程序

如何读取一个.ini文件?_编程10000问

<OBJECT ID="agobjOraSession" RUNAT="Server" PROGID="OracleInProcServer.XOraSession" SCOPE="Application"></OBJECT><script LANGUAGE=VBScript RUNAT=Server>Const CONST_FL_NAME = "\GetAttributeCode