Моя задача тривиальна - я просто нужно разобрать этот файл:перебираем файл ini на C++, возможно, используя 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++?
_Возможно, можно перебирать ptree, на самом деле это тривиально, так как мой ответ теперь показывает (обновляется) (примечание: program-options! = Property-tree) – sehe