Zitat von
PASST:
Was ist denn dann der Unterschied zwischen der Verwendung eines String auf diese Weise [sText := 'Abc'] oder wie ich es für ein Stream machen muss?
Der Stream schreibt ab dem übergebenen Pointer munter in den Speicher. Wo dein String aufhört, ist ihm egal, er kann es ja gar nicht wissen. Falls nicht sowieso eine
AV ausgelöst wird, kannst du eben über den String nur auf den Teil innerhalb des Strings zugreifen. Hinterher SetLength aufzurufen würde übrigens auch nichts bringen, da ein komplett anderer Speicherplatz für den neuen String verwendet wird.
Das Literal wird vom Compiler zur Compiletime ausgewertet. Es wird sozusagen eine Konstante angelegt, die Zeichenkette auf die Länge analysiert und das Literal mit genau dieser Länge erstellt.
[edit] Der rote Kasten hat mich verlassen
[/edit]