| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > C Совпадения в массив |
| Автор: Egeni 25.7.2010, 01:18 |
| у меня вопрос как читая построчно файл удалить в нем не целую строку, а оставить часть файл состоит из нескольких строк <HTML><HEAD> <title>Название</title></HEAD> <body>многострочный текст Текст текст текст 3 текст</body> </HTML> как в массив закинуть содержимое body? я делаю без регулярных выражений у меня получается только если body открывается и закрывается в одной строке, если на разных то не получается |
| Автор: Tima22 25.7.2010, 01:34 |
| я бы искал в каждой прочитанной строке нужное слово - например <HEAD>, стёр бы до следующего маркера - например до </HEAD> и потом, уже проверенные строки пихал бы в стреам |
| Автор: Modul 25.7.2010, 12:37 |
| Т.е. надо написать небольшой парсер. Сделай цикл, через указатель найди <body>. Только тут лучше написать функцию сравнения строки. Берем следующий символ, записываем в массив. Так до тех пор, пока не встретим символ "<" и вышли из цикла. |
| Автор: djamshud 25.7.2010, 21:06 |
| Постройте машину состояний, которя построит дерево разбора. А потом уже вытаскивайте оттуда, что душе угодно. |
| Автор: mrbrooks 26.7.2010, 09:01 |
| хм. а может не стоит городить костыли, а погуглить на наличие соответствующего парсера? |
| Автор: SenkraD 26.7.2010, 09:23 |
| mrbrooks, +1 Да, если HTML простой, то его проще регуляркой побить и не парить себе мозги (жрём проц), или же жрём оперативу за счёт XPath так, как простой HTML можно представить за XML |