1. 程式人生 > >boost自定義讀取ini等檔案的節點值

boost自定義讀取ini等檔案的節點值

最近在使用操作ini檔案,網上有好多都是基本的操作,比較亂,我自己參照網上其他人的部落格,自己自定義了一個函式,實現對ini檔案的讀寫。

1.自定義ini檔案:TEST.ini(僅對檔名大小寫是不區分的)
[DEVICE]
VERSION=80

2.尋找對應節點的值
樓主自定義基於SOUI的介面(隨後釋出相關的部落格)
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. 顯示
按鈕點選將資料顯示到介面上。