![]() |
HTML Datei und RegEX Parser
Hallo Leute,
das Delphifieber hat mich wieder gepackt und ich versuche mich wieder einzuarbeiten. Leider hänge ich an einem Problem fest das ich einfach nicht gelöst bekomme. Vorhaben: Ich habe eine HTML Datei und möchte diese auslesen und in ein MEMO Schreiben, das funktioniert auch, anschliessend entferne ich erstmal alle Zeilenumbrüche. Nun möchte ich alle Inhalte zwischen valign="top"> und </td> in ein zweites memo schreiben. Das funktioniert bedingt, komischerweise werden nur die Inhalte aus dem mitleren Drittel rausgenommen, nicht aber die aus dem ersten und aus dem letzten. Ich weis nicht worans liegt. Weiters würde ich gerne das Suchmuster weglassen, das ist im Moment noch mit im gefundenen String. Hier mein Code:
Delphi-Quellcode:
Ich hoffe jemand kann mir helfen das Problem einzukreisen ;)
procedure TForm1.Button1Click(Sender: TObject);
var i: integer; begin Memo1.Clear; Memo2.Clear; i := 0; Memo1.Lines.LoadFromFile(Edit1.Text); Memo1.Text := StringReplace(Memo1.Text, #13#10, '', [rfReplaceAll]); ShowMessage(Memo1.Lines[0]); for i := 0 to Memo1.Lines.Count - 1 do begin PerlRegEx1.Subject := Memo1.Lines[i]; PerlRegEx1.RegEx := 'valign="top">(.*?)</td>'; if PerlRegEx1.Match then Memo2.Lines.Add( PerlRegEx1.MatchedExpression ); end; end; Danke Jungs EDIT: Ich verwende für die Regulären Ausdrücke die TPerlRegEx Komponente. |
Re: HTML Datei und RegEX Parser
Und ich habe vortschritte gemacht....
Leider nicht in richtung der Lösung des Problems aber dafür hab ich rausgefunden was derzeit passiert. Also es ist nun so das durch die Grösse des Memos der extrem lange String auf 4 Zeilen verteilt wird, da ich das dann aus dem Memo wieder raushole durchläuft die Schleife das eben 4 mal. Und findet deshalb nur 4 Matches weil es zwar das erste in der Zeile vorkommende valign="top"> nimmt aber leider das letzte </td> in der zeile, richtig wäre es wenn es das erste vorkommen von </td> nach dem "top"> tag nehmen würde. Leider habe ich nun in 3 Stunden nicht rausgefunden wie das geht und hoffe noch immer auf einen Erlöser :) -greez |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 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