![]() |
Delphi-Version: 5
String Algorithmen entwickeln Tipps
Hallo, ich muss verschiedenste Funktionen/ Proceduren mit Strings entwickeln.
Ich kenne alle vordefinierten Funktionen/ Proceduren, wie: delete, insert, length, pos. Aber ich kriege es nicht hin komplexere Aufgabenstellungen zu lösen! Nach Zahlen suchen in einem String, Leerzeichen überlesen, Wörter zählen alles kein Problem….. Aber sobald ich eine Aufgabenstellung bekomme, blockiert mein Kopf & ich weiß nicht wie ich einen Algorithmus für eine Procedure oder Funktion erstellen kann. Dieses Problem muss ich so schenll wie möglich beheben. Gibt es bei bestimmten Aufgabenstellungen Tipps, wann muss ich einen String mit einer While schleife durch gehen, wann eignet sich eine for schleife mehr? Ich will hier in dem String Satz, das letzte enthaltenen Leerzeichen abschneiden und die abgeschnittenen Zeichen (sowie des Leerzeichens) durch etwas anderes ersetzen: Das ist ein Abschnitt der Funktion: if (LetzesLeerzeichen > 1) and (LetzesLeerzeichen < Length(Satz)) then begin schneideString := copy(Satz, LetzesLeerzeichen + 1,Length(satz) - letzesLeerzeichen); Delete (Satz, letzesLeerzeichen, Length(Satz) - LetzesLeerzeichen + 1); Ich würde von selbst nie auf diese Lösung kommen. Mir erschließt es sich nicht, wieso man bei Copy +1 macht und wieso man die Länge des Satzes - letzesleerzeichen machen muss. Danke. |
AW: String Algorithmen entwickeln Tipps
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:
Und die anderen +1 ergeben sich aus dem Kontext. Zitat:
ab = LetzesLeerzeichen dahinter = LetzesLeerzeichen+1 Zitat:
ab = ohne +1 (siehe vorher) und die Länge = von A bis E inklusive Beidem
Code:
9 - 6 = 3
abcde ghi
123456789 | Length=9 * * +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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz