2014-12-08 42 views
4

有什麼方法可以用boost :: property :: ptree在ini文件中寫入註釋嗎?用boost :: property_tree :: ptree寫入註釋到ini文件

類似的東西:

void save_ini(const std::string& path) 
    { 
     boost::property_tree::ptree pt; 
     int first_value = 1; 
     int second_value = 2; 

     // Write a comment to describe what the first_value is here 
     pt.put("something.first_value",); 
     // Write a second comment here 
     pt.put("something.second_value", second_value); 

     boost::property_tree::write_ini(path, pt); 
    } 

文檔here沒有給出信息。是否提升了那個?

在此先感謝

回答

5

的boost :: property_tree :: ptree中被用於各種 「屬性樹」 類型(INFO,INI,XML,JSON等),所以它不支持本身以外的任何比作爲允許key =>值設置的花哨容器。你的最後一行(應該是):

boost::property_tree::ini_parser::write_ini(path, pt); 

是定義你正在做的事情,而不是INI的那些其他格式之一的唯一的事情。例如,您可以輕鬆地將該行替換爲寫入XML,並且它也可以工作。因此,您可以看到,property_tree :: ptree不能擁有特定於特定類型文件的內容。


你可以做的是添加了「意見」設定每個孩子的最好的 - 是這樣的:

pt.put("something.comments", "Here are the comments for the 'something' section"); 

你可以有屬性,你想要的任何名稱的任何孩子...在讀取過程中迭代時忽略它們。所以,如果你願意,沒有理由不這樣做 - 這是你的程序!

+1

我想過,但我想我會不加註釋地離開它。我寧願這樣做比擁有包含評論的假屬性。無論如何,謝謝! – 2014-12-08 13:59:50

+0

我認爲它不能正常工作 - 不能保證書寫順從你想要的順序。 – agodinhost 2015-02-02 23:48:28

相關問題