He preparado un ejemplo básico de cómo podrías guardar un arreglo dinámico usando streams. No he tenido oportunidad de probarlo, pero espero que te funcione bien.
Código Delphi
[-]
type
IntegerArray = array of Integer;
procedure GuardaArray(const a: IntegerArray);
var
st: TFileStream;
Long: Integer;
begin
st := TFileStream.Create('c:\datos.dat', fmCreate);
try
Long := Length(a);
st.Write(Long, SizeOf(Long));
st.Write(a, SizeOf(Integer) * Long);
finally
st.Free;
end;
end;
procedure LeeArray(var a: IntegerArray);
var
st: TFileStream;
Long: Integer;
begin
st := TFileStream.Create('c:\datos.dat', fmOpenRead);
try
st.Read(Long, SizeOf(Long));
SetLength(a, Long);
st.Read(a, SizeOf(Integer) * Long);
finally
st.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
a: TIntegerArray;
begin
GuardaArray(a);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
a: TIntegerArray;
begin
LeeArray(a);
end;
Hasta luego.