Hallo Leute, ich verzweifel gerade etwas. Ich habe einen string und möchte gerne zählen, wie oft zb "ABC" in diesem String vorkommt. Ich habe es mit der Funktion Pos probiert und wollte dann einfach einen Zähler a hochsetzen, wenn der "ABC" gefunden wird. Das habe ich mit einer repeat-until-schliefe aufgestellt, mit Abbruchbedingung a=0, also "ABC" nicht mehr gefunden. Aber irgendwie klappt das nicht und die Schleife wird unendlich durchlaufen :( repeat a:=pos('ABC',suchstring) ; inc (anzahl); Label1.caption:=' ABC: '+ inttostr(anzahl); until a=0 was mache ich da falsch? Vielen Dank.
Manfred schrieb: > was mache ich da falsch du hast eine endlosschleife, pos('ABC',suchstring) liefert ja immer das gleiche zurück. Es scheint eine Funktion PosEx zu geben, teste mal mit a:=pos('ABC',suchstring, a);
Manfred schrieb: > was mache ich da falsch? Du suchst jedes mal von Beginn des Strings und findest jedes mal den ersten Eintrag. Deshalb die Endlosschleife.
Ich habe keine Ahnung von Pascal, aber suchst du mit a:=pos('ABC',suchstring) nicht einfach immer wieder von vorne? Dann würde die Schleife nur abbrechen, wenn 'ABC' gar nicht in suchstring vorkommt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.