Вверх ↑
Этот топик читают: Гость
Ответов: 37
Рейтинг: 5
#1: 2014-04-15 14:36:17 ЛС | профиль | цитата
Задача простая, нужно загрузить с нета страничку и если в ней есть определённый текст подкрасить его например в красный.
И вроде бы задача простая, а не вышла.
1 возникла непонятная ситуация с переносом html данных из одного объекта WebBrowser в другой
2 Русский текст не подсвечивается. Понимаю что дело в кодировки, но как исправить не пойму
Вот пример схемы, подскажите в какую сторону курить, зарание спасибо.

code_33413.txt
карма: 0

0
файлы: 1code_33413.txt [690B] [174]
Ответов: 1343
Рейтинг: 31
#2: 2014-04-15 16:02:13 ЛС | профиль | цитата
code_33414.txt

дык всё нормально и кодировка тут не причём...
просто страничка не простая
выше пример с простой HTML
карма: 2

0
файлы: 1code_33414.txt [577B] [194]
Ответов: 4630
Рейтинг: 749
#3: 2014-04-15 16:11:58 ЛС | профиль | цитата
Блин, Rysik, ну что за фигня? Тебе автор дал конкретный адрес и конкретный текст который нужно заменить. Ты сделал рабочий вариант? Тоже мне, спец по кодировкам.
карма: 26

0
Ответов: 16884
Рейтинг: 1239
#4: 2014-04-15 17:22:31 ЛС | профиль | цитата
Fidel, посмотри сколько ты получил и сколько отправляешь во второй WebBrowser
code_33415.txt
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_33415.txt [1.6KB] [142]
Ответов: 8926
Рейтинг: 823
#5: 2014-04-15 18:33:04 ЛС | профиль | цитата
Tad, 912/69
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#6: 2014-04-15 19:11:14 ЛС | профиль | цитата
Леонид, некогда вникать кто режет и почему. Человек спросил
Fidel писал(а):
подскажите в какую сторону курить
Может быть в эту.
А может и нет...
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 4630
Рейтинг: 749
#7: 2014-04-15 19:25:37 ЛС | профиль | цитата
А что там вникать? Страница не успевает загрузиться за время интервала таймера.
Плюс, действительно, проблема в кодировке.

Add(WebBrowser,11616981,560,182)
{
Left=5
Width=530
Height=410
URL="http://go.mail.ru/search_images?fr=mailru"
Silent=0
Point(doFromText)
}
Add(WebBrowser,3190214,688,259)
{
Left=555
Width=540
Height=410
URL=""
Silent=0
Point(doFromText)
}
Add(MainForm,8454809,413,105)
{
Width=1119
Height=479
Caption="Downloader"
Position=1
}
Add(Replace,13854038,616,287)
{
SubStr="Интернет"
DestStr="<font color="red">Интернет</font>"
link(onReplace,3190214:doFromText,[])
link(Str,11616981:Page,[(622,246)(573,246)])
link(Sub_str,8358877:GetData,[])
link(Dest,15734217:GetData,[(636,247)(734,247)])
}
Add(Button,3051115,504,287)
{
Left=5
Top=420
link(onClick,13854038:doReplace,[])
}
Add(Charset,15476599,679,56)
{
Type=6
link(onCharset,8358877:doData,[(724,62)(724,45)(611,45)(611,62)])
}
Add(Charset,9228702,791,140)
{
Type=6
link(onCharset,15734217:doData,[(836,146)(836,131)(716,131)(716,146)])
link(Text,6223909:Value,[])
}
Add(Memory,6223909,791,91)
{
Default=String(<font color="red">Интернет</font>)
}
Add(EventFromData,8358877,623,56)
{
link(onEvent,15476599:doCharset,[])
}
Add(EventFromData,15734217,728,140)
{
link(onEvent,9228702:doCharset,[])
}
Плюс, в тексте страницы ещё встречается слово "интернет" в теге meta, замена которого может некорректно обрабатываться в браузере.

Также при загрузке страницы по doFromText теряются стили, изображения и скрипты, путь к которым задан относительно адреса страницы (в нашем случае адреса ведь нету). Можно попробовать исправить, добавив тег base между тегами head с указанием пути к странице.
[offtop]Вообще, в компонентах-браузерах для таких случаев должно быть свойство BaseUrl[/offtop]
карма: 26

0
Ответов: 37
Рейтинг: 5
#8: 2014-04-15 19:46:46 ЛС | профиль | цитата
С подсчётом количества символов всё правильно показывает, и там и там одинаково. Если нет, то точно значит таймер сработал раньше чем первая страница загрузилась. Но вы подали хорошую идею сравнить по байтно или хэш. До шоманив её выходит то что данные идентичны, а отоброжаются всё равно по разному:

code_33416.txt
карма: 0

0
файлы: 1code_33416.txt [2.2KB] [170]
Ответов: 1343
Рейтинг: 31
#9: 2014-04-15 20:28:39 ЛС | профиль | цитата
Netspirit писал(а):
Блин, Rysik, ну что за фигня? Тебе автор дал конкретный адрес и конкретный текст который нужно заменить. Ты сделал рабочий вариант? Тоже мне, спец по кодировкам.


[flood]дак чё вокруг да около...
это же явно не для этой странички надо
я показал что всё работает на 100% а вот уж странички разные и ко всем свой подход...[/flood]
------------ Дoбавленo в 20.27:
вот так получше выглядит чем с таймером

Add(WebBrowser,11616981,63,196)
{
Left=5
Width=435
Height=370
URL="http://go.mail.ru/search_images?fr=mailru"
Silent=0
Point(doFromText)
link(onProgress,6245531:doCompare,[(114,223)(114,202)])
}
Add(WebBrowser,3190214,350,168)
{
Left=5
Top=380
Width=435
Height=410
URL=""
Silent=0
Point(doFromText)
link(onNavigate,11304619:doEvent1,[])
}
Add(MainForm,9901061,280,105)
{
Width=1477
Height=851
Caption="Downloader"
Position=1
}
Add(GetDataEx,2270148,126,238)
{
Angle=3
link(Data,11616981:Page,[(76,243)])
}
Add(Hub,5678686,182,196)
{
link(onEvent1,11859312:doReplace,[])
link(onEvent2,15749998:doEvent1,[(200,209)(200,272)])
}
Add(Label,3680767,301,364)
{
Left=490
Top=140
Font=[MS Sans Serif,10,1,255,1]
}
Add(Label,13638985,511,231)
{
Left=495
Top=535
Font=[MS Sans Serif,10,1,255,1]
}
Add(Hub,15749998,210,266)
{
link(onEvent1,8102760:doConvert,[])
link(onEvent2,4278181:doHashsum,[(231,279)(231,370)])
}
Add(Hub,11304619,413,168)
{
OutCount=3
link(onEvent1,1635404:doConvert,[])
link(onEvent2,5115506:doHashsum,[(448,181)(448,237)])
}
Add(Replace,11859312,252,196)
{
link(onReplace,3190214:doFromText,[])
link(Str,2270148:Var1,[(258,184)(132,184)])
}
Add(StreamConvertor,8102760,238,266)
{
Mode=7
link(onResult,4295128:doCopy,[])
link(Data,13347869:Var2,[])
}
Add(Hashsum,4278181,252,364)
{
link(onResult,3680767:doText,[])
link(Data,13347869:Var3,[(258,243)])
}
Add(Hashsum,5115506,469,231)
{
link(onResult,13638985:doText,[])
link(Data,9739653:Var3,[(475,219)])
}
Add(MemoryStream,4295128,280,266)
{
link(onCopy,12353995:doText,[(324,272)(324,296)(275,296)(275,321)])
}
Add(Label,12353995,287,315)
{
Left=495
Top=555
Font=[MS Sans Serif,10,1,255,1]
link(Text,4295128:Size,[])
}
Add(StreamConvertor,1635404,462,168)
{
Mode=7
link(onResult,10503844:doCopy,[])
link(Data,9739653:Var1,[(468,156)(391,156)])
}
Add(MemoryStream,10503844,504,168)
{
link(onCopy,12820353:doText,[])
}
Add(Label,12820353,553,168)
{
Left=490
Top=165
Font=[MS Sans Serif,10,1,255,1]
link(Text,10503844:Size,[(559,156)(545,156)(545,212)(517,212)])
}
Add(GetDataEx,9739653,385,214)
{
Angle=3
link(Data,3190214:Page,[(363,219)])
}
Add(GetDataEx,13347869,238,238)
{
Angle=3
link(Data,2270148:Var3,[])
}
Add(If_else,6245531,133,196)
{
link(onTrue,5678686:doEvent1,[])
}
------------ Дoбавленo в 20.28:
Fidel писал(а):
До шоманив её выходит то что данные идентичны


у меня всё разное

Fidel писал(а):
и там и там одинаково


по разному
карма: 2

0
Ответов: 1821
Рейтинг: 168
#10: 2014-04-15 20:31:42 ЛС | профиль | цитата
Rysik писал(а):
я показал что всё работает на 100%

scr_192515042014.png
карма: 5

0
файлы: 2da_rabotaet.png [17.4KB] [325], scr_192515042014.png [124.8KB] [290]
Ответов: 1343
Рейтинг: 31
#11: 2014-04-15 20:35:06 ЛС | профиль | цитата
sаmakacd писал(а):
Rysik писал(а)я показал что всё работает на 100%

scr_192515042014.png



ммм у тебя IE старый наверно...
карма: 2

0
Ответов: 1821
Рейтинг: 168
#12: 2014-04-15 20:36:20 ЛС | профиль | цитата
Rysik, IE 9
карма: 5

0
Ответов: 1343
Рейтинг: 31
#13: 2014-04-15 20:38:25 ЛС | профиль | цитата
sаmakacd писал(а):
IE 9


корявый наверно....
у меня всё работает, текст краситься в красный

да и вообще начерта потребовалось отображать что то в IE через фильтр? IE же коряво всё отображает, если через текст грузить...
можно конечно сделать что то типо загрузчика для ресурсов, что бы грузил все картинки, скрипты и прочее. (если я не ошибаюсь то, если грузить страничку через текст, то надо все ресурсы иметь на локалке, либо ссылки к ресурсам переделывать)
ладно бы если страничка простая была самодельная, а тут блин сразу mail.ru
карма: 2

0
Ответов: 4630
Рейтинг: 749
#14: 2014-04-15 22:15:59 ЛС | профиль | цитата
Rysik писал(а):
я показал что всё работает на 100%
Если бы работало, я бы тебе ничего и не сказал. Замени в своей схеме искомый текст "HTML" на любой другой русский, встречающийся в той же странице. Например "Материал". И объясни разницу в результатах со своей точки зрения на кодировки.
Rysik писал(а):
IE же коряво всё отображает, если через текст грузить

Netspirit писал(а):
Также при загрузке страницы по doFromText теряются стили, изображения и скрипты, путь к которым задан относительно адреса страницы (в нашем случае адреса ведь нету). Можно попробовать исправить, добавив тег base

карма: 26

0
Ответов: 37
Рейтинг: 5
#15: 2014-04-16 07:06:12 ЛС | профиль | цитата
Netspirit, Rysik, Ладно парни всё норм. mai.ru картинки сайт я взял тока для наглядного примера, он отлично демонстрирует наглядность проблемы. Хотя на нужных мне страницах уже нормально работает. Поэтому огромное спасибо.
Возникла новая проблемка. Что бы не разбирать текст на странице и не вытаскивать разнотипные данные, решено было тупо привезать команды к горячим клавишам. И одна из них является скопировать часть текста с помощью команды Ctrl+C. И вот тут то загвозка, даже без всяких наворотов, в ручную, у меня не получается скопирвоать текст с помощью команды Ctrl+C из элемента WebBrowser.
Как быть?
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)