Перейти к содержанию
    

парсинг txt файла

Здравствуйте!

 

Вопрос по программированию на верхнем уровне, на языке Си/Си++

Есть текстовый документ с латинскими буквами, мне необходмимо его прочитать и внести некоторые изменения в определенных местах по определнным тескстовым выражениям.

 

Пробую тупо читать ASCII код и сравнивать с нужными словами, далее куча флагов.

Этот способ я взял за основу не долго думая и теперь задумался может как то можно попроще, как люди делают например.

 

Поэтому вопрос к тем кто знает стандартное решение подобного вопроса.

 

Заранее благодарен

Изменено пользователем addi

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

 

Самый классический - Flex+Bison

...

Самый навороченный - Boost::spirit

 

Ну и между ними куча вариантов с использованием разных мутных либ.

 

Успехов! Rob.

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

 

Самый классический - Flex+Bison

...

Самый навороченный - Boost::spirit

 

Ну и между ними куча вариантов с использованием разных мутных либ.

 

Успехов! Rob.

спасибо большое, буду гуглить и изучать!!!)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

спасибо большое, буду гуглить и изучать!!!)

Если бы не C... я для таких целей использую Perl.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Классический вариант - использовать regexp. В библиотеке C++ должен быть такой класс. Большинство простых задач это решает, хотя полностью все возможности синтаксиса regexp бывают представлены редко. Языки Perl и PHP поддерживают всё тот же regexp, ничего нового там не придумано.

 

Можно поискать и внешние библиотеки. Например, Гуглом по запросу "regexp c++ library".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Классический вариант - использовать regexp. В библиотеке C++ должен быть такой класс. Большинство простых задач это решает, хотя полностью все возможности синтаксиса regexp бывают представлены редко. Языки Perl и PHP поддерживают всё тот же regexp, ничего нового там не придумано.

 

Можно поискать и внешние библиотеки. Например, Гуглом по запросу "regexp c++ library".

Спасибо большое, теперь я вообще все знаю!)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пробую тупо читать ASCII код и сравнивать с нужными словами, далее куча флагов.

Этот способ я взял за основу не долго думая и теперь задумался может как то можно попроще, как люди делают например.

 

А как еще преобразовать ASCII если не тупо его в начале читать?

Вот сравнение уже можно оптимизировать, а так у всех все одинаково.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

кстати, regexp это очень наворочено. К примеру на PHP есть fnmatch которая по сути это wildchar. Должно быть попроще если есть похожее в boost.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смотря какой сложность. Можно средствами шелла:

awk, sed, grep/egrep, tr ... etc..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смотря какой сложность. Можно средствами шелла:

awk, sed, grep/egrep, tr ... etc..

sed это классика. Решать такие вещи на С++, все равно что в Украину бабло вкладывать.

 

Смотря какой сложность. Можно средствами шелла:

$ locate sed | grep bin/
/bin/sed

sed это не шелл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

$ locate sed | grep bin/
/bin/sed

sed это не шелл.

 

Ну что вы придираетесь? Ведь понятно, что автор хотел сказать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

sed это классика. Решать такие вещи на С++, все равно что в Украину бабло вкладывать.

 

 

$ locate sed | grep bin/
/bin/sed

sed это не шелл.

А кто говорил, что это шелл?

Я имею больше сказать, и я таки скажу!

Вы будете удивлятся, но awk это таки тоже не шелл!

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а я как всегда :) посоветую питон (python) все-таки поудобнее awk для сложной обработки. ес-сно там все регекспы и пр. есть. ну и вообще приятный ддля пользователя язык имхо (в отличие от perl, снова имхо)

ну и shell (типа unix командная строка) пугает почему-то многих

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...