Hallo,
Du könntest Dir eine WebBrowser-Komponente auf die Form legen und dann mit WebBrowser1.OleObject.Document.all.tags('X') auf die
HTML-Elemente zugreifen.
Das ist natürlich stark abhängig von der Struktur der Web-Seite.
Welche Tabelle ist die betreffende, sind die Tabellen verschachtelt, liegen sie in einem Frame, u.s.w. ...
Einlesen einer
ASCII-Tabelle, ein Beispiel:
Delphi-Quellcode:
procedure TForm1.LadenClick(Sender: TObject);
var f : Olevariant;
begin
WebBrowser1.Navigate('
http://www.manderby.com/mandalex/a/ascii.php?id=30',f,f,f,f);
end;
procedure TForm1.KonvertierenClick(Sender: TObject);
var aNode,aNode2 : Olevariant;
r,c,z,z2 : Integer;
begin
//item(6) = 7te Tabelle in der Webseite
aNode := WebBrowser1.OleObject.Document.all.tags('
table').Item(6);
r := aNode.all.tags('
tr').Length;
//Zeilen feststellen
StringGrid1.RowCount := r;
for z := 0
to r-1
do
begin
aNode2 := aNode.all.tags('
tr').Item(z);
c := aNode2.all.tags('
th').Length;
if c > 0
then
begin
if c > StringGrid1.ColCount
then
StringGrid1.ColCount := c;
for z2 := 0
to c-1
do
StringGrid1.Cells[z2,z] := aNode2.all.tags('
th').Item(z2).innerText;
end;
c := aNode2.all.tags('
td').Length;
if c > 0
then
begin
if c > StringGrid1.ColCount
then
StringGrid1.ColCount := c;
for z2 := 0
to c-1
do
StringGrid1.Cells[z2,z] := aNode2.all.tags('
td').Item(z2).innerText;
end;
end;
end;
Der Code geht von einer einfachen Tabelle aus.
Z.B. sind Attribute(Colspan,rowspan, align ...) der th u. td-Elemente nicht berücksichtigt,
diese lassen sich aber auch auslesen und im Ziel-StringGrid berücksichtigen.