iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++BoostPropertyTree解析INI文件详解
  • 203
分享到

C++BoostPropertyTree解析INI文件详解

2024-04-02 19:04:59 203人浏览 独家记忆
摘要

目录前言什么是property_tree?实现代码前言 PropertyTree是一个非常牛叉的东西!虽然很小,但是,相当需要,相当重要!因为,很多的东西,我们不需要去开发,只需要去

前言

PropertyTree是一个非常牛叉的东西!虽然很小,但是,相当需要,相当重要!因为,很多的东西,我们不需要去开发,只需要去用就好了,这个东西的开发正的是极好极好的!

更重要的是,它来自大名鼎鼎的Boost库,这个库的重要性,已经是不言而喻了!

property_tree是一个保存了多个属性的树形数据结构

可以使用类似访问路径的方式问任意节点的属性,而且每个节点都可以用类似STL的风格遍历子节点。

property_tree适合于应用程序的配置数据处理,可以解析xml、ini、JSON和info四种格式的文本数据据

它简直,就是最好的读取配置文件库!

什么是property_tree?

属性树库提供了一种数据结构,该数据结构存储了任意深度嵌套的值树,并通过一些键在每个级别上建立索引。树的每个节点都存储它自己的值,以及它的子节点和它们的键的有序列表。树允许通过路径方便地访问任何节点,这是多个键的的存储

此外,该库为许多数据格式提供了解析器和生成器,这些数据格式可以由这样的树表示,包括XML、INI和jsON

属性树是通用的数据结构,但特别适合保存配置数据。树提供了自己的树特有的接口,并且每个节点也是其子节点的stl兼容序列。【说白了,这就是一个自我嵌套的数据结构】

在概念上,节点可以被认为是以下结构:

struct ptree
{
data_type data;// data associated with the node
list< pair<key_type, ptree>> children;// ordered list of named children
};

可以看到,这个就是一个自我嵌套的一个数据结构!

key_type和data_type在某种程度上都是可配置的,但是通常是std::string或std::wstring,而解析器只处理这种树。

许多软件项目在其生命周期的某一时刻开发了类似的工具,而属性树也以相同的方式产生。我们希望lib能拯救许多人,让他们不要重新发明轮子。

实现代码

#include <iOStream>
#include <string>
#include <boost/property_tree/ptree.hpp>  
#include <boost/property_tree/ini_parser.hpp>

using namespace std;
using namespace boost;

// 写入文件
void init_ini(const std::string &filename)
{
    using boost::property_tree::ptree;
    ptree pt;

    // 增加新的键值对
    pt.add("config.address", "192.168.1.1");
    pt.add("config.port", 22);
    // 修改原有键值对
    pt.put("config.port", 3389);
    write_ini(filename, pt);
}

int main(int arGC, char *argv[])
{
    std::string f("c://config.ini");
    init_ini(f);

    // 读取ini文件
    boost::property_tree::ptree ptr, tag;
    boost::property_tree::ini_parser::read_ini("c://config.ini", ptr);

    tag = ptr.get_child("config");
    std::string address = tag.get<std::string>("address");
    int port = tag.get<int>("port");
    std::cout << "地址: " << address << " 端口: " << port << std::endl;

    std::system("pause");
    return 0;
}

到此这篇关于c++ Boost PropertyTree解析INI文件详解的文章就介绍到这了,更多相关C++ Boost PropertyTree解析INI文件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C++BoostPropertyTree解析INI文件详解

本文链接: https://www.lsjlt.com/news/161640.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++BoostPropertyTree解析INI文件详解
    目录前言什么是property_tree?实现代码前言 PropertyTree是一个非常牛叉的东西!虽然很小,但是,相当需要,相当重要!因为,很多的东西,我们不需要去开发,只需要去...
    99+
    2024-04-02
  • C#操作INI文件的方法详解
    目录INI文件介绍kernel32Demo案例实现功能程序代码扩展作用本文主要介绍通过调用kernel32函数,实现对ini文件的读取和写入。 INI文件介绍 INI文件全称是Ini...
    99+
    2022-11-13
    C#操作INI文件 C#操作INI C# INI文件
  • 详解C#如何实现读写ini文件
    目录介绍1.创建一个ini文件2.创建一个winform界面3.添加一个ini管理类4.添加winform代码介绍 INI文件格式由节、键、值组成。 节 [section] 参数 (...
    99+
    2024-04-02
  • Python实现解析ini配置文件的示例详解
    目录楔子ini 文件特殊格式小结楔子 在开发过程中,配置文件是少不了的,只不过我们有时会将 py 文件作为配置文件(config.py),然后在其它的模块中直接导入。这样做是一个好主...
    99+
    2024-04-02
  • C++BoostPropertyTree示例超详细讲解
    目录一、提要二、应用示例练习一、提要 借助类 boost::property_tree::ptree,Boost.PropertyTree 提供了一个树结构来存储键/值对。树形结构意...
    99+
    2022-11-13
    C++ Boost PropertyTree C++ Boost PropertyTree示例
  • Boost PropertyTree该如何解析INI文件
    Boost PropertyTree该如何解析INI文件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。前言PropertyTree是一个非常牛叉的东西...
    99+
    2023-06-22
  • Python ini配置文件示例详解
    目录INI介绍关于configparserINI文件格式读取配置文件写入配置文件总结INI介绍 INI是英文“初始化”(initialization)的缩写,...
    99+
    2024-04-02
  • 利用C++实现简易的.ini配置文件解析器
    目录前言代码Util.hUtil.cppmain.cpp运行截图前言 实现了一个比较简单的ini文件解析器,下面介绍一下怎么用的 在最开始实例化一个IniHelper 可以使用默认的...
    99+
    2023-03-09
    C++实现ini配置文件解析器 C++ ini配置文件解析 C++ 配置文件解析
  • 怎么用C++实现简易的.ini配置文件解析器
    本篇内容介绍了“怎么用C++实现简易的.ini配置文件解析器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在最开始实例化一个IniHelpe...
    99+
    2023-07-05
  • c#中ini文件读取失败怎么解决
    在C#中读取INI文件时遇到问题可能是因为使用的方法或库不正确,以下是一些解决方法: 使用System.IO.File类读取INI...
    99+
    2024-03-11
    c#
  • Java实现解析ini文件对应到JavaBean中
    目录1、ini文件简介2、ini文件3、ini解析工具类4、示例运行结果1、ini文件简介 .ini 文件是Initialization File的缩写,即初始化文件,是window...
    99+
    2024-04-02
  • Qt读写ini文件的方法详解(含源码+注释)
    目录一、示例Ini文件内容二、Ini文件的写入三、Ini文件的读取3.1 第一种读取方式3.2 第二种读取方式3.3 读取结果示例补充:获取所有节点和key以及节点的遍历相关文章总结...
    99+
    2022-11-13
    qt中ini文件读写 qt解析ini 读取ini文件
  • Apache文件解析漏洞详解
    今天继续给大家介绍渗透测试相关知识,本文主要内容是Apache文件解析漏洞详解。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:...
    99+
    2023-09-04
    apache 文件上传 文件解析漏洞 Wen安全 渗透测试
  • C#中怎么操作INI文件
    今天就跟大家聊聊有关C#中怎么操作INI文件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C#对INI文件操作对INI文件进行写操作,是通过组件button2的"Click...
    99+
    2023-06-17
  • Python的ini配置文件你了解吗
    目录INI介绍关于configparserINI文件格式读取配置文件总结INI介绍 INI是英文“初始化”(initialization)的缩写,被用来对操作...
    99+
    2024-04-02
  • 详解CAPL 脚本对.ini 配置文件的高阶操作
    目录前言批量读取代码讲解批量写入代码讲解更新INI文件键值对删除INI文件键值对增加INI文件键值对新建INI文件前言 前面其实我们已经掌握了对配置文件,文本文件的读写函数和方法,如...
    99+
    2024-04-02
  • C#操作ini文件的帮助类
    .ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式,统管windows的各项配置,一般用户就用windows提...
    99+
    2024-04-02
  • INI文件结构的示例分析
    小编给大家分享一下INI文件结构的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!INI文件结构INI文件是一种按照特点方式排列的文本文件。每一个INI文件...
    99+
    2023-06-17
  • Linux系统下如何使用C++解析json文件详解
    1. 背景 工作需要,下班回来自己造轮子,记录以后查阅。 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,和xml类似,本文主要Lin...
    99+
    2024-04-02
  • C#怎么实现读写ini文件
    这篇文章主要介绍了C#怎么实现读写ini文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.创建一个C#项目2.创建一个ini文件在Debug目录下创建一个ini文件,写入...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作