type
TFileStruct = record
name: string[20];
age: Integer;
salary: Real;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
tf: File of TFileStruct;
tfsTmp: TFileStruct;
begin
tfsTmp.name:= 'Hello World';
tfsTmp.age:= 18;
tfsTmp.salary:= 1000.00;
AssignFile(tf, '123.txt');
Rewrite(tf);
Write(tf, tfsTmp);
CloseFile(tf);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
tf: file of TFileStruct;
tfsTmp: TFileStruct;
begin
AssignFile(tf, '123.txt');
Reset(tf);
Read(tf, tfsTmp);
CloseFile(tf);
Memo1.Lines.Add(Format('%s', [tfsTmp.name]));
Memo1.Lines.Add(Format('%d', [tfsTmp.age]));
Memo1.Lines.Add(Format('%m', [tfsTmp.salary]));
end;
按照你说的方法测试了一下,read函数不应该有问题,如上所示,是不是其它地方引起的?
edit6.Text:=inttostr(emprec.sal);// [DCC Error] Unit1.pas(77): E2250 There is no overloaded version of 'IntToStr' that can be called with these arguments
前面的看不明白怎么回事,这个是你定义错了撒
定义sal是real,怎么能用 inttostr呢?
[DCC Error] Unit1.pas(74): E2035 Not enough actual parameters
参数不够read(empfile,emprec) 应该不是两个参数
;// [DCC Error] Unit1.pas(77): E2250 There is no overloaded version of 'IntToStr' that can be called with these arguments
type
TEmpRec=record
ename:string[10];
age:integer;
sal:real;
end;
你自己定义的real 不能用strtoin
Delphi同Object Pascal一样支持三种文件类型,即:文本文件、记录文件、无类型文件。
文本文件
文本文件类型的变量用如下方法声明:
var
TextFileVar: Text ;
文本文件是以行为单位进行读、写操作的。由于每一行长度不一定相同,不能计算出给定行在文件中的确切位置,因而只能顺序地读写。而且文本文件只能单独为读或写而打开,在一个打开的文本文件上同时进行读、写操作是不允许的。
记录文件
记录文件是一种操作更为灵活的文件类型。它允许同时为读和写打开,而且由于记录文件中每条记录的长度固定,所以可随机存取。记录文件的类型变量可如下声明:
var
RecordFileVar: file of RecordType;
RecordType是一个自定义的记录类型。
无类型文件
无类型文件提供了底层的I/O通道,可用于存取可变长度记录的文件。经常用于文件的复制操作中。由于Delphi提供了更好的方法,所以无类型文件很少使用。
请问,你想问什么?