Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: String Algorithmen entwickeln Tipps

  Alt 11. Jan 2023, 22:42
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.
$2B or not $2B

Geändert von himitsu (11. Jan 2023 um 22:54 Uhr)
  Mit Zitat antworten Zitat