"синтаксический и лексический разбор" постоянно включаю в возможности буста, например в вики. Так может кто объяснить что это значит и где об этом почитать
Статью еще не прочитал, помоему для ini-файлов хватает API примитивов GetPrivateProfileString()/GetPrivateProfileInt()
JCronuz Привязка к платформе + уродский WinAPI интерфейс. А для .ini файлов есть Boost.Property Tree. Есть Boost.Regex и Boost.Xpressive.
JCronuz Да ini это просто пример. А эти WinAPI говно, +1 к _DEN_. Вот тебе пример данных под которые мне посоледний раз пришлось писать парсер: В качестве разделителей могут быть пробелы, табы или запятые. Заголовок может отсутстсовать. Вот парсер на boost::spirit Код (Text): VTablePtr table(new VectorTable); unsigned pos = 0; unsigned cols = 0; // Проверяем идёт ли первой строкой заголовок с именами столбцов if(!parse(data.c_str(), real_p, space_p).hit) { // Считываем заголовок StrList headerList; rule<> header = as_lower_d[+(alnum_p | range_p('а', 'я'))][push_back_a(headerList)] % (+(blank_p | ch_p(','))); pos = parse(data.c_str(), header, nothing_p).length + 1; table->setHeader(headerList); } // Читаем файл в таблицу rule<> row = real_p[FillTable(table, cols)] % (+(blank_p | ch_p(','))); rule<> rows = +(row >> '\n')[assign_a(cols, 0)]; if(!parse(data.c_str() + pos, rows, nothing_p).hit) throw std::ios::failure("The unknown structure of the file."); Ну и всё, потом работает уже с table как с обычной таблицей аля excel.