Einzelnen Beitrag anzeigen

Ajin

Registriert seit: 23. Feb 2006
Ort: Mons
252 Beiträge
 
Delphi 2010 Professional
 
#1

In einem Text weitersuchen

  Alt 13. Jul 2007, 10:16
Hallo DP!

Ich habe einen Text den ich nach einem bestimmten string durchsuche. Das durchsuchen klappt auch einwandfrei. Hier der Text und meine Funktion dazu:

TEXT:
Ich habe eine tomate=827382932 gesehen und die ist verwandt mit tomate=928382832 aber nicht verwandt mit tomate=928382823 was soll nur aus tomate=828372732 werden?

FUNKTION:
Delphi-Quellcode:
function get_tomatenID:integer;
var
i, pos_tomate, k:integer;
sl:Tstrings;
str:String;
Number:Cardinal;
Begin
 //Stringlist
 sl:=TStringlist.create;
 try
  sl.Add(Form1.memo1.Text);
  //alles durchsuchen
  for i := 0 to sl.Count - 1 do
  begin
  //--->> Position des gewünschten strings suchen
   str:='tomate=';
   pos_tomate := pos(str, sl.Strings[i]);

   if pos_tomate <> 0 then
  begin
   //Gefunden!

   str := Copy(sl.Strings[i],pos_tomate+7, 9);
   Val (str, Number, k);
   result := Number;
  end;
 end;
 finally
  sl.Free;
 end;
End;
Somit bekomm ich die erste Tomaten ID heraus. Nun dachte ich an eine Erweiterung... Ich möchte alle Tomaten IDs in einer Listbox untereinander speichern. Dazu muss ich nach dem 1. gefundenen (und dann auch gespeicherten) Element das nächste Suchen bis EOF
Das könnte auch eine Prozedur lösen.


PROZEDUR:
Delphi-Quellcode:
procedure get_tomatenID:integer;
var
i, pos_tomate, k:integer;
sl:Tstrings;
str:String;
Number:Cardinal;
Begin
 //Stringlist
 sl:=TStringlist.create;
 try
  sl.Add(Form1.memo1.Text);
  //alles durchsuchen
  for i := 0 to sl.Count - 1 do
  begin
  //--->> Position des gewünschten strings suchen
   str:='tomate=';
   pos_tomate := pos(str, sl.Strings[i]);

   if pos_tomate <> 0 then
    begin
   
    //1. Wert Gefunden!
    str := Copy(sl.Strings[i],pos_tomate+7, 9);
    Val (str, Number, k);
    Listbox1.items.add(Number);
    [i]Jetzt irgendwie weitersuchen -_-[/i]

  end;
 end;
 finally
  sl.Free;
 end;
End;
WIe kann ich ab der stelle weitersuchen lassen bis EOF?
  Mit Zitat antworten Zitat