Im enteffekt willst du ja einen String speichern der größer 255 Zeichen ist (vllt sogar variable.
Mach doch im Record eine Integer-Variable von der Länge. und dan schreibst du den String direkt rein.
Das geht mit
Stream.Write(String[1],Länge);
Also im record die länge des strings speichern und dann den String schreiben. Beim lesen erst record lesen und dann musst du den Speicher zum lesen in eine String-variable festlegen.
Hier eine kurze Funktion zum Prinzip.
Die länge ist halt den im record den du erst liesst.
Delphi-Quellcode:
//Schreiben
fs := TFileStream.Create(....,....);
try
// Erst die Länge
fs.Write(dwLen,SizeOf(dwLen)); // Besser SizeOf als direkt 4, falls man den Typ ändert
// Dann den eigentlichen Inhalt
fs.Write(sBuf[1],dwLen);
finally
fs.Free;
end;
// Lesen
fs := TFileStream.Create(....,....);
try
// Erst die Länge
fs.Read(dwLen,SizeOf(dwLen));
// Jetzt muss erst mal der Lesebuffer initialisiert werden
sBuf := StringOfChar(#00,dwLen); // oder SetLength(sBuf,dwLen), aber dann ist der Speicher nicht initalisiert
fs.Read(sBuf[1],dwLen);