AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

HTML Datei und RegEX Parser

Ein Thema von sexmagic · begonnen am 27. Feb 2007 · letzter Beitrag vom 28. Feb 2007
Antwort Antwort
sexmagic

Registriert seit: 16. Sep 2006
56 Beiträge
 
Delphi 2006 Professional
 
#1

HTML Datei und RegEX Parser

  Alt 27. Feb 2007, 21:02
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:
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;
Ich hoffe jemand kann mir helfen das Problem einzukreisen

Danke Jungs

EDIT:
Ich verwende für die Regulären Ausdrücke die TPerlRegEx Komponente.
  Mit Zitat antworten Zitat
sexmagic

Registriert seit: 16. Sep 2006
56 Beiträge
 
Delphi 2006 Professional
 
#2

Re: HTML Datei und RegEX Parser

  Alt 28. Feb 2007, 20:12
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:13 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