好象变得很乱。我以前写的代码中有一个错误。
BlockWrite(CHECKFILE,rec,SizeOf(TCHECK));
应改为:
BlockWrite(CHECKFILE,rec,1);
>>>>我看到網上說任何類型的文件都可以看做是記錄型文件,為什麼TXT文件不可以呢?
只要有一定格式,文本文件就能看作是记录类型。
你可以试试下面的代码。
//更改记录格式
TYPE TCHECK=RECORD
NAME: array [0..20] of char;
HOBBY: array [0..20] of char;
LNUMBER: array [0..10] of char;
CRLF: array [0..1]of char;
END;
CHECKFILETYPE=FILE OF TCHECK;
//更改Button2Click
procedure TForm1.Button2Click(Sender: TObject);
VAR
CHECKFILE: CHECKFILETYPE;
rec: TCHECK;
i: integer;
a: string;
begin
ASSIGNFILE(CHECKFILE,'E:/test.TXT');
REWRITE(CHECKFILE);
for i := 1 to 8888 do
begin
FillChar(rec.HOBBY,Length(rec.HOBBY),$20);//填充空格,以下同
FillChar(rec.NAME,Length(rec.NAME),$20);
FillChar(rec.LNUMBER,Length(rec.LNUMBER),$20);
a := 'HOBBY'+IntToStr(i);
move(a[1],rec.HOBBY[0],Length(a));
a := 'NAME'+IntToStr(i);
move(a[1],rec.NAME[0],Length(a));
a := IntToStr(i);
move(a[1],rec.LNUMBER[0],Length(a));
rec.CRLF[0] := #13;
rec.CRLF[1] := #10;
BlockWrite(CHECKFILE,rec,1);
end;
CloseFile(CHECKFILE);
end;