Thema: Delphi String aufbereiten

Einzelnen Beitrag anzeigen

oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#6
  Alt 4. Feb 2003, 16:03
Hallo,

also mal für Dietmar Brüggendiek. Ich habe mir den Code nicht ausgedacht, sondern nur versucht auf die Frage von Salomon
Zitat:
Kann mir einer erklären was genau mit dem String gemacht wird?
eine Interpretation zu finden.

Warum Decrementiert jemand das Byte [0] eines Strings? Ich habe im Moment nur eine sinnvolle Antwort: Längenbyte eines ShortStrings minus 1!

Was besseres fällt mir dazu nicht ein.

Im zusammenhang sehe ich nur folgendes:

Zeile:
Code:
while (cmd <> '') and not (cmd[1] in ['a'..'z','A'..'Z','0'..'9']) do cmd:=copy(cmd,2,255);
sagt doch deutlich:
Prüfe so lange bis erstes Zeichen im Wertebereich, und so lange nicht kopiere den String ab Zeichen 2.

Die darauffolgende Zeile sieht genauso aus, mit dem "kleinen" Unteschied, dass auf das letzte Zeichen geprüft wird. Ich tippe, ist das nicht im Wertebereich, will derjenige der das geschrieben hat auch das Zeichen loswerden (Bereinigung am Anfang und am Ende).

Warum der nicht auch hier kopiert; aber mit Länge(String) - 1; entzieht sich meiner Kenntnis.

Vielleicht ist das auch kein ShortString sondern was selbst gebasteltes wo jemand an Stelle Null was eigenes führt. Keine Ahnung!

Ich arbeite nie explizit mit dem Längenbyte von ShortStrings (eigentlich auch nie mit ShortStrings wenn ich nicht gerade eine DLL schreibe und PChar's nicht haben will) und habe somit auch nicht ausprobiert wann der Compiler (oder welcher) Dec(byte(String[0]) akzeptiert.


Also o.k. ich weiß nicht wo der Code herkommt, eine bessere Begründung fällt mir nicht ein. Für mich ist das weiterhin eine etwas eigenartige Lösung einen String am Anfang und Ende zu bereinigen.

Gruß oki
  Mit Zitat antworten Zitat