addi 0 22 ноября, 2013 Опубликовано 22 ноября, 2013 (изменено) · Жалоба Здравствуйте! Вопрос по программированию на верхнем уровне, на языке Си/Си++ Есть текстовый документ с латинскими буквами, мне необходмимо его прочитать и внести некоторые изменения в определенных местах по определнным тескстовым выражениям. Пробую тупо читать ASCII код и сравнивать с нужными словами, далее куча флагов. Этот способ я взял за основу не долго думая и теперь задумался может как то можно попроще, как люди делают например. Поэтому вопрос к тем кто знает стандартное решение подобного вопроса. Заранее благодарен Изменено 22 ноября, 2013 пользователем addi Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 33 22 ноября, 2013 Опубликовано 22 ноября, 2013 · Жалоба Приветствую! Самый классический - Flex+Bison ... Самый навороченный - Boost::spirit Ну и между ними куча вариантов с использованием разных мутных либ. Успехов! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
addi 0 22 ноября, 2013 Опубликовано 22 ноября, 2013 · Жалоба Приветствую! Самый классический - Flex+Bison ... Самый навороченный - Boost::spirit Ну и между ними куча вариантов с использованием разных мутных либ. Успехов! Rob. спасибо большое, буду гуглить и изучать!!!) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 22 ноября, 2013 Опубликовано 22 ноября, 2013 · Жалоба спасибо большое, буду гуглить и изучать!!!) Если бы не C... я для таких целей использую Perl. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 22 ноября, 2013 Опубликовано 22 ноября, 2013 · Жалоба Классический вариант - использовать regexp. В библиотеке C++ должен быть такой класс. Большинство простых задач это решает, хотя полностью все возможности синтаксиса regexp бывают представлены редко. Языки Perl и PHP поддерживают всё тот же regexp, ничего нового там не придумано. Можно поискать и внешние библиотеки. Например, Гуглом по запросу "regexp c++ library". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
addi 0 22 ноября, 2013 Опубликовано 22 ноября, 2013 · Жалоба Классический вариант - использовать regexp. В библиотеке C++ должен быть такой класс. Большинство простых задач это решает, хотя полностью все возможности синтаксиса regexp бывают представлены редко. Языки Perl и PHP поддерживают всё тот же regexp, ничего нового там не придумано. Можно поискать и внешние библиотеки. Например, Гуглом по запросу "regexp c++ library". Спасибо большое, теперь я вообще все знаю!) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 22 ноября, 2013 Опубликовано 22 ноября, 2013 · Жалоба Пробую тупо читать ASCII код и сравнивать с нужными словами, далее куча флагов. Этот способ я взял за основу не долго думая и теперь задумался может как то можно попроще, как люди делают например. А как еще преобразовать ASCII если не тупо его в начале читать? Вот сравнение уже можно оптимизировать, а так у всех все одинаково. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
megajohn 7 22 ноября, 2013 Опубликовано 22 ноября, 2013 · Жалоба кстати, regexp это очень наворочено. К примеру на PHP есть fnmatch которая по сути это wildchar. Должно быть попроще если есть похожее в boost. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A. Fig Lee 0 23 ноября, 2013 Опубликовано 23 ноября, 2013 · Жалоба Смотря какой сложность. Можно средствами шелла: awk, sed, grep/egrep, tr ... etc.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Methane 0 23 ноября, 2013 Опубликовано 23 ноября, 2013 · Жалоба Смотря какой сложность. Можно средствами шелла: awk, sed, grep/egrep, tr ... etc.. sed это классика. Решать такие вещи на С++, все равно что в Украину бабло вкладывать. Смотря какой сложность. Можно средствами шелла: $ locate sed | grep bin/ /bin/sed sed это не шелл. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tarbal 4 23 ноября, 2013 Опубликовано 23 ноября, 2013 · Жалоба $ locate sed | grep bin/ /bin/sed sed это не шелл. Ну что вы придираетесь? Ведь понятно, что автор хотел сказать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A. Fig Lee 0 23 ноября, 2013 Опубликовано 23 ноября, 2013 · Жалоба sed это классика. Решать такие вещи на С++, все равно что в Украину бабло вкладывать. $ locate sed | grep bin/ /bin/sed sed это не шелл. А кто говорил, что это шелл? Я имею больше сказать, и я таки скажу! Вы будете удивлятся, но awk это таки тоже не шелл! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 7 27 ноября, 2013 Опубликовано 27 ноября, 2013 · Жалоба а я как всегда :) посоветую питон (python) все-таки поудобнее awk для сложной обработки. ес-сно там все регекспы и пр. есть. ну и вообще приятный ддля пользователя язык имхо (в отличие от perl, снова имхо) ну и shell (типа unix командная строка) пугает почему-то многих Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться