Registriert seit: 9. Mär 2003
Ort: Brilon
395 Beiträge
Delphi 2007 Enterprise
|
Re: Wie kann ich nach einem String den nächsten 'sehen'
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
|
|
Zitat
|