我的任務是微不足道的 - 我只需要解析這樣的文件:在C++上迭代ini文件,可能使用boost :: property_tree :: ptree?
Apple = 1
Orange = 2
XYZ = 3950
但我不知道一組可用密鑰。我解析這個文件中使用C#相對容易,讓我演示源代碼:
public static Dictionary<string, string> ReadParametersFromFile(string path)
{
string[] linesDirty = File.ReadAllLines(path);
string[] lines = linesDirty.Where(
str => !String.IsNullOrWhiteSpace(str) && !str.StartsWith("//")).ToArray();
var dict = lines.Select(s => s.Split(new char[] { '=' }))
.ToDictionary(s => s[0].Trim(), s => s[1].Trim());
return dict;
}
現在我只需要用C++做同樣的事情。我正在考慮使用boost::property_tree::ptree
,但似乎我只是無法遍歷ini文件。這很容易讀取ini文件:
boost::property_tree::ptree pt;
boost::property_tree::ini_parser::read_ini(path, pt);
但它是不可能遍歷它,請參閱這個問題Boost program options - get all entries in section
的問題是 - 什麼是上面寫上的C#代碼模擬的最簡單方法C++?
_Of course_有可能迭代ptree,實際上它是微不足道的,因爲我的答案現在顯示(更新)(注意:程序選項!=屬性樹) – sehe 2013-04-21 20:13:18