Es kommt nicht darauf an was man damit machen will,
sondern wie man es machen will.
Gibt es einen festen/unveränderlichen Anfang und Ende, dann FOR, (fest = ändert sich nicht während die Schleife läuft)
Steht das Ende nicht von Beginn an fest, bzw. gibt es andere/komplexere/dynamische Abbruchbedingungen, dann WHILE oder REPEAT.
Und WHILE oder REPEAT hängt davon ab, ob zu Beginn oder am Ende die Abbruch-Prüfung vorgenommen wird.
Zitat:
if (LetzesLeerzeichen > 1)
Indize in Delphi-Strings beginnen mit 1, daher >1 und nicht >0 bzw. <>0.
Und die anderen +1 ergeben sich aus dem Kontext.
Zitat:
schneideString := copy(Satz, LetzesLeerzeichen + 1,Length(satz) - letzesLeerzeichen);
kopiere Alles "hinter dem LetzesLeerzeichen".
ab = LetzesLeerzeichen
dahinter = LetzesLeerzeichen+1
Zitat:
Delete (Satz, letzesLeerzeichen, Length(Satz) - LetzesLeerzeichen + 1);
lösche ab dort, bis zum Ende
ab = ohne +1 (siehe vorher)
und die Länge = von A bis E inklusive Beidem
Code:
abcde ghi
123456789 | Length=9
* *
9 - 6 = 3
+1 = 4
f (leerzeichen) bis i löschen = 4 Zeichen
ABER mit den neuen String-Helpern, in aktuelleren Delphi-Versionen.
Dort beginnen Indize mit 0 (ebenso wie bei dynamischen Arrays und Listen)
daher sind dort alle Berechnungen entsprechend um 1 verschoben.