Wenn sowieso der ganze Shortstring geschrieben wird, der ja 255 Ansichars enthält, ist SizeOf überflüssig.
Besser wäre es aber Length zu verwendern und dann nur die Zeichen, die der Shortstring enthält mit dem Längenbyte zu schreiben.
etwa so:
Delphi-Quellcode:
var
daten:ShortString;
l: Byte;
begin
l := Length(daten);
fs.WriteBuffer(l, sizeof(l));
if l > 0 then
fs.WriteBuffer(daten[1], l);
...
Aber wenn Daten immer 255 Zeichen enthält ist das Längenbyte überflüssig.