Показать сообщение отдельно
  #1  
Старый 21.04.2008, 09:33
PashaXP PashaXP вне форума
Новичок
 
Регистрация: 05.02.2008
Сообщения: 81
Репутация: 15
Смущение Из HTML-страницы в Memo?

Есть код, который считывает HTML-код в Memo -
Код:
//--- Функция считывания html-кода в  TMemo
 function GetHTMLCode(WB: IWebbrowser2; ACode: TStrings): Boolean;
 var
  ps: IPersistStreamInit;
  s: string;
  ss: TStringStream;
  sa: IStream;
 begin
  ps := WB.document as IPersistStreamInit;
  s := '';
  ss := TStringStream.Create(s);
  try
    sa:= TStreamAdapter.Create(ss, soReference) as IStream;
    Result := Succeeded(ps.Save(sa, Bool(True)));
    if Result then ACode.Add(ss.Datastring);
  finally
    ss.Free;
  end;
 end;
procedure TForm1.Button1Click(Sender: TObject);
Var
  ShellWindow: IShellWindows;
  WB: IWebbrowser2;
  spDisp: IDispatch;
  IDoc1: IHTMLDocument2;
Begin
 for k := 0 to ShellWindow.Count do
  begin{1}
    spDisp := ShellWindow.Item(k);
    if spDisp = nil then Continue;
    {QueryInterface определяет, может ли интерьфейс использоваться объектом}
      // проверяем, а не браузер ли это 
   spDisp.QueryInterface(iWebBrowser2, WB);
    if WB <> nil then
    begin{2}
    // проверяем , а не  HTML ли это
      WB.Document.QueryInterface(IHTMLDocument2, iDoc1);
      if iDoc1 <> nil then   // Если да дергаем html код
      begin{3}
      // связываем запущенный экземпляр Internet Explorera как браузер
        WB := ShellWindow.Item(k) as IWebbrowser2;
        begin{4}
          Form1.Memo1.Clear;
          GetHTMLCode(WB, Memo1.Lines);// Запись кода в  Memo
        end;{4}
      end;{3}
    end;{2}
  end;{1}
End. 
Пример считывания стороки этого кода -
</a>|</div>|<div class="text">|<span>Ð*то наиболее
Можно ли сделать так
</a>
</div>
<div class="text">
<span>Ð*то наиболее общий
Т.е. как либо изменить функцию GetHTMLCode, чтобы в каждой строке Memo была одна строка считанного html кода???
Ответить с цитированием