13-07-2018, Saat: 00:54
Şunu bir deneyin isterseniz. Size fikir verecektir.
Ayikla( EmbeddedWB1, 'TABLE' ) derseniz <TABLE> </TABLE> olanları ayıklar.
Ayikla( EmbeddedWB1, 'DIV' ) derseniz <DIV> </DIV> aralarını ayıklar.
yani kısaca ne isterseniz TR deyin TD deyin, size her TAG için kısımlara ayrılmış şekilde çıktı üretecektir.
Ayikla( EmbeddedWB1, 'TABLE' ) derseniz <TABLE> </TABLE> olanları ayıklar.
Ayikla( EmbeddedWB1, 'DIV' ) derseniz <DIV> </DIV> aralarını ayıklar.
yani kısaca ne isterseniz TR deyin TD deyin, size her TAG için kısımlara ayrılmış şekilde çıktı üretecektir.
Uses ActiveX, MSHTML;
Function Ayikla( EmbeddedWB: TEmbeddedWB; aTagName : String ):String;
Const
Satir = #10#13;
var
doc : OleVariant;
el : OleVariant;
i : Integer;
begin
doc := EmbeddedWB.Document as IHTMLDocument2;
for i := 0 to doc.body.all.length - 1 do
begin
el := doc.body.all.item(i);
if (el.tagName = aTagName )
then Result := Result
+ satir + StringOfChar( '=', 4 ) + ' ' + el.Id + ' '+ StringOfChar( '=', 96 )
+ satir + el.InnerHtml;
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
EmbeddedWB1.Navigate( Edit1.Text );
While EmbeddedWB1.ReadyState <> READYSTATE_COMPLETE do
begin
Application.ProcessMessages;
Sleep(1);
end;
Memo1.Lines.Text := Ayikla( EmbeddedWB1, 'TABLE' );
Memo1.Lines.SaveToFile(changeFileExt(application.ExeName, '.TXT_Table' ) );
Memo2.Lines.Text := EmbeddedWB1.OleObject.Document.Body.InnerHtml;
Memo2.Lines.SaveToFile(changeFileExt(application.ExeName, '.TXT_Body' ) );
Showmessage('OK');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text := 'http://www.delphican.com';
end;
Saygılarımla
Muharrem ARMAN

Muharrem ARMAN


