Thema: Delphi String aufbereiten

Einzelnen Beitrag anzeigen

Brüggendiek

Registriert seit: 13. Dez 2002
Ort: Dortmund
275 Beiträge
 
Delphi 5 Standard
 
#5
  Alt 3. Feb 2003, 19:06
Hallo!

Zitat von oki:
Die Letste Schleife setzt das klassische Längenbyte des Strings (String[0] = Länge eines ShortStrings) einfach minus 1 wenn letztes Zeichen nicht im Wertebereich ist.
Das ist Unsinn!

Das Längenbyte eines ShortString (stringvar[0]) gibt die Länge des Strings ohne das Längenbyte an, kann also Werte von 0 bis 255 annehmen! Dec(0) ergibt -1 - entweder kann das nicht in ein Char umgewandelt werden (Programm stürzt mit Exception ab) oder es kommt 255 raus - so war das nicht gemeint!

Da nie sicher ist, ob wirklich ein Shortstring verwendet wird, sollte man bei Stringzugriffen immer mit Lenght und Setlength arbeiten und nie stringvar[0] benutzen. Außerdem: warum Shortstrings verwenden? Die dynamische Stringverwaltung von Delphi ist doch hervorragend - und die Beschränkung auf 255 Bytes entfällt.

Ich kenne nur eine Anwendung für Shortstrings: in Records, die mit typisierten Datein verwendet werden sollen.

Gruß

Dietmar Brüggendiek
Dietmar Brüggendiek
  Mit Zitat antworten Zitat