Здравствуйте, Ka3a4oK, Вы писали:
KK>ИМХО неудачный пример. Если мне придется парсить что-либо, для чего можно составить регулярное вражение или КС-грамматику, я обязательно буду использовать средства автоматизации. Раньше это были bison/lex, сейчас еще хочу попробовать boost::spirit. Даже если мне нужно будет написать парсер для ini-файла, я также буду использовать средства автоматизации. Потому-что:
KK> — это просто (Сравните объем кода парсера и объем грамматики.)
KK> — это надежно (Во-первых, средства автоматизации обнаруживают все ошибки несоответствия формата. Во-вторых
KK>генерируемый код достаточно надежен. Это конечно справедливо для известных инструментов.)
KK> — это расширяемо (Расширился формат — добавили несколько прaвил в грамматику.)
KK> Я считаю, кодирование парсеров вручную как раз и есть "ламерство". Данный подход не дает никаких преимуществ.
И что, для того, чтобы распарсить строки с значениями, разделенными запятыми, Вы пойдете изучать boost::spirit с его кучей шаблонов? Неделю ковыряться с ним вместо того, чтобы черкнуть пару вложенных циклов — IMHO верх идиотизма. Можно, конечно, и регулярные выражения использовать, только они будут все же медленнее работать,чем банальная пара циклов. Все эти решения — "из пушки по воробьям стрелять".
KK>И вообще, я не вижу ничего плохого в осмысленном использовании чужого опыта.
Чужой опыт подсказывает, что можно написать sscanf.
В случае с custom INI-форматом — аналогично, зачем изобретать велосипед (кривой скорее всего), если есть:
1) стандартный виндозный формат и API для работы с ним
2) XML и куча парсеров к нему, на любой вкус.
KK> Я считаю, что главное для инженера(кем, по моему мнению, является программист)- это нахождение решения поставленой задачи. Чем лучше инженер, тем найденое решение оптимальней (по разным критериям — качество, стоимость, сроки).
Хороший программист, т.е. тот, который делает работу качественно и в срок, стоит дорого.