Hier also mein Code:
Delphi-Quellcode:
procedure TMainWindow.StartClick(Sender: TObject);
var
r : TRegExpr;
vTemp : variant;
s string;
begin
vTemp := WebBrowser.Document;
if Webbrowser.LocationURL <> '' then
s := vTemp.Body.OuterHTML;
r := TRegExpr.Create;
try
r.Expression := 'ed2k://\|file\|(.)*\|[0-9]*\|[A-Fa-f0-9]*\|';
if r.Exec (s) then
REPEAT
LinkList.Items.Add(r.Match[0])
UNTIL not r.ExecNext;
finally r.Free;
end;
end;
Das ist im Prinzip genau wie in der Doku zu TRegExpr, nur dass mein String eben sehr lang ist, dadurch dass es eine Website ist. Ich weiß nicht, ob es vielleicht an der Art liegt, wie ich den Quelltext aus der Seite bekomme, meine RE läuft auf jeden Fall, das habe ich in dem Testtool von TRegExpr mit einem kurzen Text getestet. Was ich vorhabe, ist einfach die ed2k Links aus der Seite zu ziehen, die RE ist ja auch recht simpel. Meine Delphi Version ist D7 Personal. TRegExr hat v0.952.
Mir ist klar, dass das rekursive Parsen von großen Texten viel Speicher erfordert, aber diese Mengen scheinen mir etwas übertrieben.
Vielleicht hast Du ja eine Idee...
Danke