![]() |
Re: TWebbrowser Daten auslesen
Ich habe dir wegen den Daten eine PN gesendet.
Gruß Aaron |
Re: TWebbrowser Daten auslesen
Hallo Aaron,
ich habe mir die Webseite angesehen und mein Code-Beispiel etwas angepasst. Es sind character entities enthalten und manche Feldwerte enthalten markup code.
Delphi-Quellcode:
Freundliche Grüße
function CreateDocument(const markup: string): IHTMLDocument2;
var doc: OleVariant; begin Result := CoHTMLDocument.Create as IHTMLDocument2; doc := Result; doc.Open; doc.Write(markup); doc.Close; end; function DecodeEntities(const s: string): string; var doc: OleVariant; begin doc := CoHTMLDocument.Create; doc.open; doc.Write(s); doc.Close; Result := doc.body.innerHtml; end; procedure ShowIt(doc: IHTMLDocument2; s: TStrings); const MARKER = 'showinfoalphabet('; var i, iLeft, iRight: Integer; ec: IHTMLElementCollection; e: IHTMLElement; value: string; begin ec := doc.all.tags('a') as IHTMLElementCollection; for i := 0 to Pred(ec.length) do begin e := ec.item(i, null) as IHTMLElement; value := VarToStr(e.getAttribute('onclick', 0)); if value = '' then Continue else value := DecodeEntities(value); iLeft := Pos(marker, Lowercase(value)) + Length(marker); iRight := LastDelimiter(')', value); if iLeft > Length(marker) then value := Copy(value, iLeft, iRight- iLeft) else Continue; s.Add(value); end; end; // Test procedure TDemoForm.ButtonClick(Sender: TObject); var doc: IHTMLDocument2; csv, markup: TStrings; fn: string; begin fn := 'C:\Daten\DP\A.htm'; markup := TStringList.Create; csv := TStringList.Create; try markup.LoadFromFile(fn); doc := CreateDocument(markup.Text); ShowIt(doc, csv); csv.SaveToFile(ChangeFileExt(fn, '.csv')); finally markup.Free; csv.Free; end; end; |
Re: TWebbrowser Daten auslesen
Vielen vielen Dank.
|
Re: TWebbrowser Daten auslesen
Hallo Achim,
darf ich dich in dieser Angelegenheit nochmal um einen Gefallen bitten? Auf den übrigen Seiten wird nicht mehr mit HTML Entities gearbeitet, ich bekomme zwar mit deinem allerersten Code immer eine Adresse angezeigt aber nie alle. Wenn ich showinfoalphabet in showInfo bei deinem allerletzten Code ändere bringt das auch nichts. Irgendwie hatte ich vorgestern Ergebnisse bekommen, nun versuche ich schon seit Stunden etwas brauchbares zustande zu bringen, leider ohne Erfolg. Man sollte doch immer alles speichern. Habe dir nochmal eine PN geschickt. [EDIT] Stimmt du hattest recht, ich hatte einen Schreibfehler Gruß Aaron |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz