Einzelnen Beitrag anzeigen

Basic-Master

Registriert seit: 9. Mär 2003
Ort: Brilon
395 Beiträge
 
Delphi 2007 Enterprise
 
#18

Re: Wie kann ich nach einem String den nächsten 'sehen'

  Alt 19. Jul 2003, 19:58
Zitat von iLLe:
Zitat von Basic-Master:
Hi,
das geht wenn du mit copy+pos arbeitest:
Delphi-Quellcode:
var a,b,c:integer;
   s, temp, suche:string;
begin
a := 0;
s := 'das hier ist ein toller test. hier isser.';
temp := s;
suche := 'hier';
for a := 1 to length(s) do begin
  c := pos(suche, temp);
  if c <> 0 then begin
  b := length(s) - length(temp);
  showmessage('An Position "' + inttostr(c + b) + '" ist ein "' + suche + '".');
  temp := copy(temp, c + length(suche), length(temp));
  end;
end;
ich versteh das irgendwie auch nicht vielleicht kannst du ja mal paar komentarzeilen dazueditieren intressiert mich mich jetzt nämlich
na klaa:
Delphi-Quellcode:
var a,b,c:integer;
   s, temp, suche:string; //Variablen
begin
s := 'das hier ist ein toller test. hier isser.'; //der hauptstring, der durchsucht werden soll
temp := s; //damit s nicht verändert wird, wird s an temp übergeben
suche := 'hier'; //danach wird gesucht
for a := 1 to length(s) do begin //schleife
  c := pos(suche, temp); //hier wird immer nach dem nächsten suchen gesucht und anschliessend an c übergeben
  if c <> 0 then begin //nur wenn c auch ne position ist
  b := length(s) - length(temp); //hier wird die richtige position ausgerechnet, sonst würde die position nicht stimmen, an der es gefunden wurde
  showmessage('An Position "' + inttostr(c + b) + '" ist ein "' + suche + '".'); //gibt halt ne meldung aus wo was gefunden wurde
  temp := copy(temp, c + length(suche), length(temp)); //hier wird der string zurechtgeschnitten, sonst würde immer die gleiche position rauskommen, an der das erste gefunden wurde...
  end;
end;
Christian
  Mit Zitat antworten Zitat