私の仕事は簡単です-そのようなファイルを解析するだけです:
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 entry in section
問題は、上記の C# コードのアナログを C++ で記述する最も簡単な方法は何ですか?