Здравствуйте, гость ( Вход | Регистрация )
|
bynet |
13.11.2008, 20:38
Сообщение
#1
|
![]() Студент ![]() Группа: Участник Сообщений: 69 Регистрация: 17.3.2008 Из: Belarus Пользователь №: 124 Спасибо сказали: 0 раз(а) Репутация: 0
|
Мне надо написать html браузер. При написании его нельзя использовать практически никаких библиотек. Тоесть на читом visual studio. Без всяких STL, MFC. Но разрешили на qt,
Решил реализовывать использую регулярные выражения. Но стандартную библиотеку для работы с регуляными выражениями мне использовать нельзя. Как лучше организовать регулярные выражения(алгоритм)? Или может лучше будет организовать другим способом? |
|
|
|
![]() |
|
Litkevich Yuriy |
19.11.2008, 19:04
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(fsMark @ 19.11.2008, 19:55) Link Помоему надо строить дерево отрожающее структуру HTML файла это DOM-подход, он сложен.Цитата(bynet @ 19.11.2008, 15:38) Link Огромное спасибо, но мне минимум можно использовать стандартных функций. Все практически надо написать самому. Тоесть если строку парсить то надо написать свой парсер это я понял, я и предлагаю тебе свой парсер написать, но несквозной. А в стиле SAX, т.е. ты создаешь свой класс обзываешь его к примеру MySAX. Интерфейс выглядит примерно так:Интерфейс В функции start(), собственно парсере, ты ищещ тэги (закрывающий и открывающий). Помере того как ты их находишь, вызываешь соответствующие методы. Например ты нашел открывающийся тэг, вызвал openTag(const QString &tag), в качестве аргумента передаешь имя тэга. Запоминашь позицию (номер символа)курсора сразу после тэга, ищешь слудющий тэг (или закрывающий или открывающий), когда нашел, то сначало берешь текст от запомненой позиции до текущей, передаешь его в text(const QString &text) затем вызываешь closeTag или openTag в зависимости от того какой тэг нашел. и т.д. А вот заготовка реализации: реализация |
|
|
|
bynet Надо написать html браузер 13.11.2008, 20:38
ViGOur Столкнувшись с написанием конвертера HTML в WIKI ф... 13.11.2008, 22:46
bynet Цитата(ViGOur @ 13.11.2008, 22:46) Поэтом... 13.11.2008, 22:57
bobdva Цитата(bynet @ 13.11.2008, 21:38) Мне над... 13.11.2008, 23:13
bynet Цитата(bobdva @ 13.11.2008, 23:13) Цитата... 13.11.2008, 23:22
ViGOur Цитата(bobdva @ 13.11.2008, 23:13) Кстати... 14.11.2008, 0:09
bobdva Цитата(ViGOur @ 14.11.2008, 1:09) Цитата(... 14.11.2008, 8:58
Litkevich Yuriy Цитата(bobdva @ 14.11.2008, 11:58) а чем ... 14.11.2008, 9:59
kuler Цитата(Litkevich Yuriy @ 14.11.2008, 9:59... 14.11.2008, 10:33
Litkevich Yuriy Цитата(kuler @ 14.11.2008, 13:33) Смысл?п... 14.11.2008, 11:06
kuler Цитата(Litkevich Yuriy @ 14.11.2008, 11:0... 14.11.2008, 16:00
Litkevich Yuriy Цитата(kuler @ 14.11.2008, 19:00) почему?... 14.11.2008, 16:51
kuler Цитата(Litkevich Yuriy @ 14.11.2008, 16:5... 14.11.2008, 17:43
Litkevich Yuriy Цитата(kuler @ 14.11.2008, 20:43) а если ... 14.11.2008, 18:05
bynet Огромное спасибо буду пробовать. 17.11.2008, 12:24
bynet Читаю строку QTextStream::readline как мне онализи... 18.11.2008, 13:12
AD Цитата(bynet @ 18.11.2008, 13:12) Читаю с... 18.11.2008, 13:19
bynet Цитата(AD @ 18.11.2008, 13:19) Цитата(byn... 18.11.2008, 21:21
AD А что именно хочешь? Я не очень понимаю. Вот так о... 19.11.2008, 0:50
bynet Ок!
Вот у меня есть строка Qstring str="a... 19.11.2008, 10:59
AD QString & QString::remove ( const QString ... 19.11.2008, 13:09
trdm Цитата(bynet @ 19.11.2008, 10:59) Как из ... 19.11.2008, 17:34
molchanoviv Цитата(bynet @ 19.11.2008, 10:59) Как из ... 19.11.2008, 20:20
Litkevich Yuriy bynet, яб тебе всетаки рекомендовал использовать п... 19.11.2008, 11:55
bynet Огромное спасибо, но мне минимум можно использоват... 19.11.2008, 12:38
bynet Вот к чему я пришел
CODE
void Parser::open()
{ Q... 19.11.2008, 16:09
fsMark Помоему надо строить дерево отрожающее структуру H... 19.11.2008, 16:55![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 10.3.2026, 12:06 |