Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi InnerText aus TWebBrowser in Listbox (https://www.delphipraxis.net/72964-innertext-aus-twebbrowser-listbox.html)

fLeTCHeR 10. Jul 2006 11:20


InnerText aus TWebBrowser in Listbox
 
hallo freaks ;-)

ich habe ein kleines Problem. Ich möchte aus einer HTML- Datei den innerText auslesen und in eine Listbox schreiben. Dabei muss jeder gefundene innerText in eine eigene Zeile der Lisbox geschrieben werden. Um den innerText in eine Memo zuschreiben, verwende ich folgenden Code.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  IDoc: IHTMLDocument2;
  Strl: TStringList;
  sHTMLFile: string;
  v: Variant;
  Links: IHTMLElementCollection;
  i: Integer;
  Link: IHTMLAnchorElement;
begin
  if OpenDialog1.Execute then
  begin
    sHTMLFile := OpenDialog1.FileName;
    Strl := TStringList.Create;
    try
      Strl.LoadFromFile(sHTMLFile);
      Idoc := CreateComObject(Class_HTMLDOcument) as IHTMLDocument2;
      try
        IDoc.designMode := 'on';
        while IDoc.readyState <> 'complete' do
          Application.ProcessMessages;
        v := VarArrayCreate([0, 0], VarVariant);
        v[0] := Strl.Text;
        IDoc.Write(PSafeArray(System.TVarData(v).VArray));
        IDoc.designMode := 'off';
        while IDoc.readyState <> 'complete' do
          Application.ProcessMessages;
        Memo1.Lines.Text := IDoc.body.innerText;
      finally
        IDoc := nil;
      end;
    finally
      Strl.Free;
    end;
  end;
end;
Leider blick ich bei diesem Code (--> www.SwissDelphiCenter.ch) nich zu richtig durch und krieg es nicht hin den Code umzuändern. Vielleicht kann mir jemand von Euch helfen.

Vielen Dank im voraus

mfg fleTCHeR

fLeTCHeR 12. Jul 2006 07:56

Re: InnerText aus TWebBrowser in Listbox
 
i dont like push, sorry. aber hat niemand eine Idee wie man das lösen könnte.

grüße fLeTCHeR

marabu 12. Jul 2006 08:28

Re: InnerText aus TWebBrowser in Listbox
 
Hallo Fletcher,

wenn ich den gezeigten Code ignoriere und nur den Titel deines Themas berücksichtige, dann suchst du das hier:

Delphi-Quellcode:
with WebBrowser.Document as IHTMLDocument2 do
  ListBox.Lines.Add(body.innerText);
Ansonsten musst du dein Problem etwas genauer erklären.

Grüße vom marabu

fLeTCHeR 12. Jul 2006 17:45

Re: InnerText aus TWebBrowser in Listbox
 
Delphi-Quellcode:
with WebBrowser.Document as IHTMLDocument2 do
  ListBox.[b]Items[/b].Add(body.innerText);
Tippfehler ;-)


Soweit war ich auch schon. Das Problem ist aber, dass der dann den gesamten InnerText in eine Zeile schreibt. Ich hätte es gerne, das jeder gefundene InnerText in eine eigene Zeile geschrieben wird. Gibt es eine Möglichkeit das HTML Doc Zeilenweise zu durchlaufen? So das ich jede Zeile einzeln betrachten kann?

Um was es mir geht:

Ich will in einem nicht manipulierbaren HTML Document nach Eingaben, die in einer Tabelle geschrieben stehen, suchen.

Viele Grüße

fLeTCHeR

chaosben 13. Jul 2006 05:22

Re: InnerText aus TWebBrowser in Listbox
 
Mir scheint, du willst jedes Element des Dokuments einzeln betrachten.
Wenn du das willst, dann sieh dir mal die Methoden von IHTMLDomNode an. Mit diesen kannst du durch den Baum itterieren und dir einzelne Knoten-Inhalte suchen. In der Regel kann man dann ein IHTMLDomNode als IHTMLElement casten um an den InnerText zu kommen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz