Есть код, который считывает 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 кода???