Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Работа с regexp, получение информации из файла


Автор: gromo 7.8.2011, 08:09
есть текстовый файл с вот таким содержимым (вместо "..." некий текст):
Код

...
 РАСШИРЕННАЯ ПЕЧАТЬ. Относит. время (час) =     0.000000E+00
...
...
...
      PsiAvr  PsiMax      ShAvr   ShMax
16   0.477   0.611/  67  11.474  25.426/  15
15   0.784   1.007/  67  18.031  38.975/  62
14   0.945   1.206/  32  20.567  43.627/  15
13   1.030   1.332/  31  21.372  44.921/  15
12   1.083   1.404/  31  21.650  45.262/  15
11   1.117   1.445/  52  21.804  45.422/  82
10   1.140   1.470/  31  21.937  45.624/  82
 9   1.155   1.484/  31  22.071  45.841/  82
 8   1.162   1.489/  31  22.209  46.077/  82
 7   1.162   1.485/  31  22.353  46.328/  82
 6   1.154   1.472/  31  22.501  46.599/  82
 5   1.136   1.448/  31  22.642  46.880/  82
 4   1.103   1.413/  31  22.704  47.054/  82
 3   1.042   1.350/  31  22.364  46.508/  82
 2   0.912   1.196/  31  20.419  43.007/  62
 1   0.595   0.778/  31  13.591  29.414/  15
...
итак далее 

Мне нужно выбрать значение 0.000000E+00 после РАСШИРЕННАЯ ПЕЧАТЬ. Относит. время (час) =, а также все значения после      PsiAvr  PsiMax      ShAvr   ShMax.

Подскажите, пожалуйста, как это можно реализовать через регулярные выражения (boost/regexp) и как подключить boost/regexp (#include "boost/regex.hpp" - не помогает)?

Автор: 586 7.8.2011, 09:57
Цитата(gromo @  7.8.2011,  09:09 Найти цитируемый пост)
Подскажите, пожалуйста, как это можно реализовать через регулярные выражения (boost/regexp) и как подключить boost/regexp (#include "boost/regex.hpp" - не помогает)? 

Для начала, нужно скачать эту библиотеку. Потом её нужно собрать. А уже потом, подключать.

Автор: afiskon 7.8.2011, 15:43
1. http://eax.me/python-benchmark/ есть программа с примером использования boost/regex
2. А http://eax.me/regular-expr/ исчерпывающая информация по самим регулярным выражениям

Далее - тривиально. Читаешь файл построчно, и парсишь регулярными выражениями.

Добавлено через 1 минуту и 13 секунд
Да, если boost уже установлен, но хидеры не цепляются или цепляются но не находятся какие-то функции при линковке, используйте флаги -L и -I

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)