Thema: Delphi Strings filtern

Einzelnen Beitrag anzeigen

aaron

Registriert seit: 18. Feb 2003
202 Beiträge
 
Delphi 2007 Professional
 
#4
  Alt 18. Feb 2003, 12:58
Supergut! Danke...
eins von den dreien hätte ich nun
<B class=grey>Wartburg golf 4[/B]
, EZ: 01/03,

EUR 3.000

also ich bekomme das jetzt herausgefiltert:
Wartburg golf 4


muss ich das für alle 3 "Suchbegriffe" wiederholen, oder geht das auch in einem? Mag mir das noch jemand zeigen?
Da ich die Ergebnisse schon sehr gerne in einer Listbox hätte.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
   i: Integer;
   s, s1, s2: String;
begin
  i := 0;
  Listbox1.Clear;
  s2 := Memo1.Text;
  { so lange 'class=grey>' gefunden wird ist pos() > 0 }
  while pos('class=grey>', s2) > 0 do
  begin
    { kopieren der Zeichenfolge ab 'class=grey>' bis zum ersten Vorkommen von '"'
     -> Linkende }

    while s1 <> '<do
    begin
      Inc(i);
      { immer 1 Zeichen nach s1 kopieren }
      s1 := copy(s2, pos('class=grey>', s2)-1+i, 1);
      { Überprüfen, ob s1 = ", wenn true Schleife verlassen }
      if s1 = '<then break;
      { Zusammensetzten des Links }
      s := s + s1;
    end;
    { Hinzufügen des Links der in s steht in die Listbox }
    memo2.lines.Add(s);
    { Da pos() inmer nur das erste Vorkommen eines Teilstrings in einem String
    findet, wird der Text bis nach dem ersten Vorkommen abgeschnitten }

    s2 := copy(s2, pos('class=grey>', s2)+Length(s), Length(Memo1.Text));
      Memo2.text := StringReplace(Memo2.text, 'class=grey>', ' ',
                          [rfReplaceAll, rfIgnoreCase]);
    { Zurücksetzen der Variablen }
    s := '';
    s1 := '';
    i := 0;
  end;
  
end;
  Mit Zitat antworten Zitat