Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#36

Re: StreamWrite erzeugt nur 0 Byte-File

  Alt 18. Jun 2008, 15:49
Die Konstante wird intern als ShortString abgelegt, ist also zum alten Pascal kompatibel. Dort waren die Strings auf 255 Zeichn begrenzt, da das 0. Zeichen die Länge des Strings angegeben hatte. Deshalb ist es bei AnsiStrings auch verboten auf den 0. Index zu zu greifen.

So, da du nun bei der Konstante einen ShortString erhälst und nicht das erste Zeichen angibst, wird hier die Variable an sich komplett gespeichert und die fängt mit diesem Längenbyte an.

BTW: Aus genau diesem Grund werden auch konstante Strings mit einer Länger von über 255 Zeichen vom Compiler angemeckert und müssen mit einem Pluszeichen aufgetrennt werden (in intern einzelne ShortStrings).
  Mit Zitat antworten Zitat