crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Регулярные выражения QT, отображение HTML
bynet
  опции профиля:
сообщение 18.4.2008, 12:47
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 69
Регистрация: 17.3.2008
Из: Belarus
Пользователь №: 124

Спасибо сказали: 0 раз(а)




Репутация:   0  


Вот сталкнулся с такой задачей, нуно написать HTML Браузер с помощью регулярных выражений.
Тоесть при вводе адреса получить его код и отобразить как браузер.

Вопрос : Как с помощью рег. выражений это организовать?

Хотябы на простом примере:
Ввел я адрес любого сайта, получил код , на том сайте была ссылочка(без звездочек)
<a* href='http://www.forum.crossplatform.ru/index.php?act=idx'>Форумы на CrossPlatform.RU</a*>
Как мне преобразовать её в сылку и какой лучше элемент редактирования использовать для отображения всего?

Сообщение отредактировал bynet - 18.4.2008, 12:49
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 18.4.2008, 13:01
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Не совсем понял, какие данные на входе, как должны были на выходе? Приведи пример.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
bynet
  опции профиля:
сообщение 18.4.2008, 13:06
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 69
Регистрация: 17.3.2008
Из: Belarus
Пользователь №: 124

Спасибо сказали: 0 раз(а)




Репутация:   0  


я получаю html код странички
на выходе должно быть как в web браузере
полностью весь код
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 18.4.2008, 13:16
Сообщение #4


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата
Как мне преобразовать её в сылку и какой лучше элемент редактирования использовать для отображения всего?

Всеравно не понял, что ты хочешь в ссылку преобразовать...
В качестве элемент для отображения веб страницы используй: QTextEdit.
Смотри в качестве примера: %QtDir%\examples\assistant\simpletextviewer
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
bynet
  опции профиля:
сообщение 18.4.2008, 14:21
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 69
Регистрация: 17.3.2008
Из: Belarus
Пользователь №: 124

Спасибо сказали: 0 раз(а)




Репутация:   0  


не точто бы мне сылку нужно было бы отображать, при помощи рег выражений мне нужно анализировать html код и отображать
Пример кода странички:
Адрес к примеру www.myhomepage.com
У меня есть LIneEdit туда я ввожу этот адрес, и производится подключение и получение кода html после чего html браузер преобразует её в привычный для нас вид странички.
Содержимое html кода странички

<html>
<body>
Hello all this is my page!
My <a* href='www.myhomepage.com'>Home page</a*>
<body>
</html>

Вот как мне преобразовать весь этот код html и отобразить его в QTextEdit

Вид странички должен быть следующий

Hello all this is my page!
My Home page

И это нетолько нужно для ссылок, но и для таблиц самых простых и всё что используется в хтмл
Поидее нужна замена при помощи рег. выражений. Изночально мне дано всё это сделать при помощи рег. выражений

Может по поводу замены я и ошибаюсь. Но не могу просто дагнать как это всё сделать

Сообщение отредактировал bynet - 18.4.2008, 14:23
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 18.4.2008, 14:48
Сообщение #6


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Все понял, что ты хочешь.
Все что тебе нужно это:
1. Скачать html страничку со всем ее содержимым в свою временную жиректорию.
2. Преобразовать ссылки вроде <a href='www.myhomepage.com/index.html'>Home page</a> в <a href='tempDir/index.html'>Home page</a>, с путями к картинкам и прочему барахлу то же самое.
3. Отобразить все это богатство в QTextEdit (смотри пример %QtDir%\examples\assistant\simpletextviewer)

Преобразование делать можно так:
// szExp = "<a href=\"http://www.myhomepage.com/([^\"]*)[^<>]*>([^<]+)</a>";
// szData = "<a href=\"http://www.myhomepage.com/index.php\">MyHomePage</a>";
void ReplaceRegText1( const QString szExp, QString &rszData)
{
    QRegExp rx( szExp, Qt::CaseInsensitive);
    int pos = rx.indexIn( rszData);
    while( ( pos = rx.indexIn( rszData, pos)) != -1)
    {
        QString szUrl = rx.cap( 1);
        QString szPattern = rszData.mid( pos, rx.matchedLength());
        QString szTmp = "tmpDir/" + szUrl;
        
        rszData.replace( szPattern, szTmp);
    }
}
где, в szExp ты сам подставляешь http://www.myhomepage.com/, так как знаешь домен, для ссылок другого вида добавь немного анализа... :)

Сообщение отредактировал Admin - 21.4.2008, 10:24
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.4.2008, 15:59
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


так?

я специально ничего не делал, мне надо было выводить результат обработки строки, и эта особенность для меня Баг, ея ее не сразу заметил.
Если интересен вариант код здесь
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
bynet
  опции профиля:
сообщение 21.4.2008, 12:39
Сообщение #8


Студент
*

Группа: Участник
Сообщений: 69
Регистрация: 17.3.2008
Из: Belarus
Пользователь №: 124

Спасибо сказали: 0 раз(а)




Репутация:   0  


ну мне сохранять на компе не нужно просто загнать в строку (или ещё куда) найти сылки и отобразить их на экране, и таблицы .....
Ну в принципе похоже

Сообщение отредактировал bynet - 21.4.2008, 15:35
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
bynet
  опции профиля:
сообщение 7.5.2008, 10:45
Сообщение #9


Студент
*

Группа: Участник
Сообщений: 69
Регистрация: 17.3.2008
Из: Belarus
Пользователь №: 124

Спасибо сказали: 0 раз(а)




Репутация:   0  


Мне надо для начало получить html код(исходный текст) странички и отобразить его в qtextedit, как это сделать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 7.5.2008, 10:48
Сообщение #10


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Открывай новую тему
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.12.2024, 21:29