Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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

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