Einzelnen Beitrag anzeigen

ichhabefertig

Registriert seit: 8. Jul 2003
51 Beiträge
 
#7

Re: Noch einmal zu Regulären Ausdrücken in Delphi

  Alt 10. Apr 2004, 01:22
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
  Mit Zitat antworten Zitat