boost自定义读取ini等文件的节点值

时间:2022-02-15 15:31:33

最近在使用操作ini文件,网上有好多都是基本的操作,比较乱,我自己参照网上其他人的博客,自己自定义了一个函数,实现对ini文件的读写。

1.自定义ini文件:TEST.ini(仅对文件名大小写是不区分的)
[DEVICE]
VERSION=80

2.寻找对应节点的值
boost自定义读取ini等文件的节点值
3.上代码

定义:
std::string GetStringFromIni(std::string filename,std::string section, std::string node);
实现:
std::string CMainDlg::GetStringFromIni(std::string filename, std::string section, std::string node)
{
boost::filesystem::path filepath;
filepath = filename;
if(!boost::filesystem::exists(filepath))
{
return "";
}

read_ini(filename, pt);
std::string str = section + "." + node;
return pt.get<std::string>(str,"");
}

想必看完上面,有些人还是有点不明白,楼主怎么搞的?

我给大家讲解一下:
1. 我们用到的是boost库,读写ini文件需要头文件
boost/filesystem.hpp –> 判断文件是否存在
boost/property_tree/ptree.hpp –>将内容存储到树里面
boost/property_tree/ini_parser.hpp –> 操作ini文件
2. 声明一个树对象
boost::property_tree::ptree pt;
3. 使用自定义函数获从TEST.ini文件取数据
std::string getstr = GetStringFromIni(filename,sectionname,nodename);
4. 显示
按钮点击将数据显示到界面上。