Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Поиск по HTML документам в программе


Автор: B2_Russia 8.4.2006, 18:05
Суть
Сделал программу которая отображает на своих формах html - ки с некоторым текстом
Формы 2 уровней, 2 главные из них есть выход на второстепенные. И в главных и во второстепенных есть TWebBrowser с отображаемым содержимым.

Вопрос, как организовать по ним поиск?
В окне поиска программы должно отображаться все примерно как влюбом поисковике:
Код

ЗАГОЛОВОК СТРАНИЦЫ 1 (что в теге TITLE)
...выдержка из текста с выделением найденных слов...

ЗАГОЛОВОК СТРАНИЦЫ 2 (что в теге TITLE)
...выдержка из текста с выделением найденных слов...

ЗАГОЛОВОК СТРАНИЦЫ 3 (что в теге TITLE)
...выдержка из текста с выделением найденных слов...

ЗАГОЛОВОК СТРАНИЦЫ 4 (что в теге TITLE)
...выдержка из текста с выделением найденных слов...


итд


да еще (что самое главное!) как реализовать переход по ссылке? <- это самый главный вопрос, я впринципе могу сделать соответствие типа
Имя файла->нужные манипуляции по открытию его
, но как обработать клик юзера на ссылку, выдрать имя файла в котором найден текст? И соответственно как ее правильно сформировать при отображении результатов поиска? Как при поиске прочитать только текст без тегов (это вроде в DRKB видел но чтото не найду).

Нужно не просто загрузить нужный файл в браузер, а открыть фотму нужного уровня с загруженными данными (нужной ХТМЛкой). <- ваши идеи.


Буду ооооочень признателен если поделитесь своими соображениями/кодами/или даже если просто посочувствуете smile

Автор: December 8.4.2006, 18:29
B2_Russia,
либо я тормоз, либо изложи свой вопрос по-другому...
Что за уровни форм? Что за формы? Поиск по чему - по загруженным хтмлям? Сохранённым на диске?
Цитата(B2_Russia @ 8.4.2006, 18:05 Найти цитируемый пост)
но как обработать клик юзера на ссылку

В OnBeforeNavigate парсим урл
Цитата(B2_Russia @ 8.4.2006, 18:05 Найти цитируемый пост)
Как при поиске прочитать только текст без тегов

смотрим innerText

Автор: B2_Russia 8.4.2006, 18:52
ЭЭЭЭ... Вобщем
Про уровни форм насамом деле перебор, вобщем имеется ввиду что разные тексты отображаются на разных формах в зависимости от тематики текста, например, главная форма "Автомобили" с контентом про автомобили вообще и сиском автомобилей, из нее открывается форма по конкретому авто с текстом по этому авто и ничего более.

> OnBeforeNavigate
эээ innerHtml впринципе при помощи JavaScript как посмотреть знаю, а вот как в Делфях=0 приведи код пожалуйста.

Автор: B2_Russia 8.4.2006, 19:53
если есть еще линки (на маны) на тему

Автор: December 8.4.2006, 21:40
Чё-то типа такого... Выводит текст всех блоков <p>...</p>. Ключевой момент - свойство innerHTML есть у IHTMLElement...
Код

var
  doc:IHTMLDocument2;
  iColl:IHTMLElementCollection;
  tEl:IHTMLElement;
begin
doc:=WebBrowser1.ControlInterface.Document as IHTMLDocument2; 
iColl:=doc.all.tags('P') as IHTMLElementCollection;
for i:=0 to iColl.length-1 do
  begin
  tEl:=IDispatch(iColl.item(i,0)) as IHTMLElement;
  ListBox1.Items.Add(tEl.innerHTML);
  end;//for
end;

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