把 Integer 数组保存到文件、并读取


unit Unit1;



interface



uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls;



type

  TForm1 = class(TForm)

    Button1: TButton;

    Button2: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

  end;



var

  Form1: TForm1;



implementation



{$R *.dfm}



type

  TIntArray = array of Integer;



{把 Integer 数组写入文件的函数}

function IntArrToFile(ns: TIntArray; FileName: string): Boolean;

var

  IntFile: file of Integer;

  n: Integer;

begin

  try

    AssignFile(IntFile, FileName);

    if FileExists(FileName) then Reset(IntFile) else Rewrite(IntFile);

    Seek(IntFile, FileSize(IntFile));

    for n in ns do Write(IntFile, n);

    Result := True;

  finally

    CloseFile(IntFile);

  end;  

end;



{读取的函数}

function FileToIntArr(FileName: string; var ns: TIntArray): Integer;

var

  IntFile: file of Integer;

begin

  if not FileExists(FileName) then Exit(0);

  AssignFile(IntFile, FileName);

  Reset(IntFile);



  while not Eof(IntFile) do

  begin

    SetLength(ns, Length(ns)+1);

    Read(IntFile, ns[High(ns)]);

  end;



  CloseFile(IntFile);

  Result := Length(ns);

end;



{写入测试}

procedure TForm1.Button1Click(Sender: TObject);

var

  IntArr: TIntArray;

begin

  SetLength(IntArr, 3);

  IntArr[0] := 111;

  IntArr[1] := 222;

  IntArr[2] := 333;



  IntArrToFile(IntArr, 'c:\temp\test.num');

end;



{读取测试}

procedure TForm1.Button2Click(Sender: TObject);

var

  IntArr: TIntArray;

  n: Integer;

begin

  FileToIntArr('c:\temp\test.num', IntArr);

  for n in IntArr do ShowMessage(IntToStr(n));

end;



end.


 
   

你可能感兴趣的:(Integer)