Forum: Programmieren allgemein
by himitsu,
9. Sep 2012
Bei S > '' muß man auch noch aufpassen, denn '' < S ist ja andersrum, wärend es bei <> egal ist.
Und auch von der Logik her, ist S ungleich leer, bzw. S nicht leer auch verständlicher, als ein S größer als Nichts.
Forum: Programmieren allgemein
by himitsu,
9. Sep 2012
Da bei einem Leerstring der Stringpointer auf nil steht, kann bei S <> '' direkt auf nil geprüft werden, wärend bei Length(S) <> 0 erstmal auf nil geprüft werden muß, dann wird der Offset zum Längen-Wert aufgerechnet, von dort die Länge geholt und dann das mit 0 verglichen. (oder optimiert Delphi inzwischen das Length(S) <> '' zu einem S <> '' ? )
(standardmäßig, also solange keiner fahrlässig...
Forum: Programmieren allgemein
by himitsu,
9. Sep 2012
Nein! SizeOf ist niemals richtig, um die Länge eines Strings, also dessen Inhalts, zu prüfen.
SizeOf gibt bei einem String immer 4 zurück (bei 32 Bit).
Bei einem ShortString gibt es die maximale Länge + 1 (dem Längenbyte an Index 0) zurück.