Also ne andere Variante war, dass ich einen String konstanter Länge genommen habe:
Delphi-Quellcode:
var Stream: TFileStream; s: array[0..255] of Char; c: Cardinal;
{...}
repeat
Stream.Read(c, 4); // Größe einlesen
Stream.Read(s, c); // String einlesen
ShowMessage(s);
until Stream.Position >= Stream.Size;
{...}
Das hat funktioniert!
Aber hätte ich dann nicht auch s[0] beim Einlesen nehmen müssen?