1. 程式人生 > >基於boost的ini 檔案讀取/列舉/寫入操作

基於boost的ini 檔案讀取/列舉/寫入操作

[setting]
key1=1
key2=hello

上面是ini檔案的內容, 執行如下程式碼:

#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/ini_parser.hpp>
void testIniParser() {
	using namespace boost::property_tree;
	ptree lvptProperties;
	ini_parser::read_ini("d:\\temp\\win.ini", lvptProperties);
	basic_ptree<string, string> lvbtItems = lvptProperties.get_child("setting");
	
	//list all key/value under setting session
	for (basic_ptree<string, string>::iterator lvitem=lvbtItems.begin();lvitem!=lvbtItems.end();lvitem++)
	{				
		cout << (*lvitem).first.data() << "=" << (*lvitem).second.data() << endl;
	}
	int lvnInt = 0;
	try{
		//get single key value
		lvnInt = lvbtItems.get<int>("key1");
		cout << lvnInt<< endl;
	}
	catch (std::exception& e) {
		cerr << e.what() << endl;
	}
	//change key values
	lvptProperties.put<string>("setting.key2", "new value");
	lvptProperties.put<int>("setting.key1", ++lvnInt);
	//update ini file	
	ini_parser::write_ini("d:\\temp\\win.ini", lvptProperties);

}


執行結果:

key1=1
key2=hello
1

然後再重新開啟win.ini看內容:

[setting]
key1=2
key2=new value

值得注意的是寫入引數時不能用lvbtItems的put方法,估計這個類的資料已經從lvptProperties複製過來, 因為put了之後, lvptProperties的資料沒變化 ,只能通過lvptProperties的put方法實現key/value的更新. 還有, 值得注意的是, put裡面的path是session.key的形式提供, 比如setting.key1.

相關推薦

基於boost的ini 檔案讀取/列舉/寫入操作

[setting] key1=1 key2=hello 上面是ini檔案的內容, 執行如下程式碼: #include <boost/property_tree/ptree.hpp> #include <boost/property_tree/ini_par

Verilog十大基本功2(testbench的設計 檔案讀取寫入操作 原始碼)

需求說明:Verilog設計基礎 內容       :testbench的設計 讀取檔案 寫入檔案 來自       :時間的詩 十大基本功之 testbench 1. 激勵的產生 對於 testbench 而言,埠應當和被測試的 module 一一對應。 埠分

C++:txt檔案讀取寫入操作研究

1. 讀取txt檔案的內容                                      

java檔案建立、刪除、讀取寫入操作大全

複製檔案 1.以檔案流的方式複製檔案 public void copyFile(String src,String dest) throws IOException...{          FileInputStream in=new FileInputStream(s

Unity 檔案讀取寫入

Resources.LoadAssetAtPath();    僅限於在編輯器內使用    Build後出來的的所有AssetDatabase.LoadAssetAtPath();的返回值都為null;不建議使用。呼叫路徑為:Assets\Resources\A.FBXRes

Unity Excel 檔案讀取寫入

但是在使用的過程中還是碰到了不少的問題,在這裡總結一下,希望能對看到此處的朋友一個幫助。 1.Excel的讀取 Excel檔案 需要新增的名稱空間 using Excel; 讀取方法 using UnityEngine; using Excel;

python環境管理器使用(程式介紹),檔案讀取寫入

#本程式示意自定義的類作為環境管理器使用 class FileWrite:     def __init__(self,filename):         self.filename = filename  

C語言檔案讀取寫入連結串列

C語言沒啥要逼逼的,直接上程式碼,用心體會 #include "stdio.h" #include "stdlib.h" /***************************** 連結串列節點結構體 ****************************/ typedef stru

csv檔案讀取以及寫入

    近段時間搞檔案上傳程式碼,中間用到了csv檔案的讀取以及存入,這裡總結下!main函式package testFile; import java.io.File; import java.io.FileInputStream; import java.io.File

C++__檔案讀取寫入

                                          &

HDFS檔案讀取寫入

 讀取檔案: 一:讀取方式一 寫入哪個DataNode是不確定的,主要尋找讀取速度較快的DataNode; 怎麼找到這種DataNode,從以下幾個方面:是否有本機位置,本機架位置,本機房位置; 依次重試讀取檔案,直到讀取檔案成功; 二:讀取方式二:back

SSIS遍歷xls檔案讀取寫入資料

根據業務部門提供的資料,連線業務資料庫查詢資料,並根據業務資料庫處理的資料寫入xls表。 1、開啟 Microsoft Visual Studio 2008,檔案-新建專案-新建一個“Integration Services 專案”,重新命名為:SSIS_xls。 2

C++中Txt檔案讀取寫入

一、ASCII 輸出 為了使用下面的方法, 你必須包含標頭檔案<fstream.h>(譯者注:在標準C++中,已經使用<fstream>取代< fstream.h>,所有的C++標準標頭檔案都是無後綴的。)。這是 <iostrea

Java FileInputStream/FileOutputStream的應用 檔案讀取寫入

這是一對繼承於InputStream和OutputStream的類,用於本地檔案讀寫(二進位制格式讀寫並且是順序讀寫,讀和寫要分別創建出不同的檔案流物件); 本地檔案讀寫程式設計的基本過程為: ①  生成檔案流物件(對檔案讀操作時應該為FileInputStream類,而

Java檔案讀取寫入資料庫

/**  * 檔案讀寫及資料入庫工具包  */ package com.xxx.file; import java.io.BufferedReader; import java.io.FileReader; import java.io.FileWriter; import

CSharp檔案讀取寫入入門圖解

C#是微軟公司釋出的一種面向物件的、運行於.NET Framework之上的高階程式設計語言。並定於在微軟職業開發者論壇(PDC)上登臺亮相。C#是微軟公司研究員Anders Hejlsberg的最新成果。C#看起來與Java有著驚人的相似;它包括了諸如單一繼承、介面、與Ja

Java配置檔案Properties的讀取寫入與更新操作

/**   * 實現對Java配置檔案Properties的讀取、寫入與更新操作   */    package test;     &nbs

【快學SCALA】Scala中檔案讀取寫入、控制檯輸入操作

1、檔案的讀取、寫入操作 2、控制檯操作程式碼實戰 val file = Source.fromFile("E:\\WangJialin.txt") for(line <-file.getLines){println(file)

Scala中檔案讀取寫入、控制檯輸入操作程式碼實戰

內容: 1、檔案的讀取、寫入操作 2、控制檯操作程式碼實戰 val file = Source.fromFile("E:\\WangJialin.txt") for(line <-file.getLines){println(file)

呼叫JAVA API 對 HDFS 進行檔案讀取寫入、上傳、下載、刪除等操作

Hadoop檔案系統 基本的檔案系統命令操作, 通過hadoop fs -help可以獲取所有的命令的詳細幫助檔案。 Java抽象類org.apache.hadoop.fs.FileSystem定義了hadoop的一個檔案系統介面。該類是一個抽象類,通過以下兩種靜態工廠方法