Das funktioniert so nur mit Arrays fester Größe.
Ansistrings sind im Prinzip auch nur Arrays mit dynamischer Größe und wie man die speichert und wieder liest, findest du in meinem Beispiel. Ich würde mit TStream (bzw. TFileStream) statt mit File arbeiten, ist einfach universeller.
Edit, z.B. so:
Delphi-Quellcode:
type
TPointArray = array of TPoint;
procedure PointArray_Write(AStream: TStream; const AValue: TPointArray);
var
n: Longword;
begin
n := Length(AValue);
AStream.WriteBuffer(n, SizeOf(n));
if n > 0 then
AStream.WriteBuffer(AValue[0], SizeOf(AValue[0]) * n);
end;
procedure PointArray_Read(AStream: TStream; var AValue: TPointArray);
var
n: Longword;
begin
AStream.ReadBuffer(n, SizeOf(n));
SetLength(AValue, n);
if n > 0 then
AStream.ReadBuffer(AValue[0], SizeOf(AValue[0]) * n);
end;