delphi 中 读取文件
unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,F...
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Name: TStaticText;
Age: TStaticText;
Salary: TStaticText;
Name1: TStaticText;
Age1: TStaticText;
Salary1: TStaticText;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Open: TButton;
write: TButton;
open1: TButton;
read: TButton;
Button5: TButton;
procedure OpenClick(Sender: TObject);
procedure writeClick(Sender: TObject);
procedure open1Click(Sender: TObject);
procedure readClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
type
TEmpRec=record
ename:string[10];
age:integer;
sal:real;
end;
var
emprec: TEmprec;
EmpFile: file of TEmprec;
last: longint;
procedure TForm1.OpenClick(Sender: TObject);
begin
try
AssignFile(EmpFile,'d:\emp.$$$');
reset(EmpFile);
last := filesize(EmpFile);
seek(EmpFile,last);
except
Rewrite(EmpFile);
end;
end;
procedure TForm1.open1Click(Sender: TObject);
begin
assignfile(empfile,'d:\emp.$$$');
reset(empfile);
end;
procedure TForm1.readClick(Sender: TObject);
begin
if not eof(empfile) then
begin
read(empfile,emprec);
edit4.text:=emprec.ename;
edit5.Text:=inttostr(emprec.age);
edit6.Text:=inttostr(emprec.sal);
end;
end;
procedure TForm1.writeClick(Sender: TObject);
begin
emprec.ename:=edit1.Text;
emprec.age:=strtoint(edit2.Text);
emprec.sal:=strtoint(edit3.Text);
write(empfile,emprec);
edit1.Clear;
edit2.Clear;
edit3.Clear;
end;
end.
read(empfile,emprec);//这里编译通不过 错误提示:1.[DCC Error] Unit1.pas(74): E2035 Not enough actual parameters 2.[DCC Error] readfile.pas(74): E2014 Statement expected, but expression of type 'TButton' found这里是不是因为没找到read()这个方法,请问怎么解决。 edit4.text:=emprec.ename;
edit5.Text:=inttostr(emprec.age);
edit6.Text:=inttostr(emprec.sal);// 这个问题已解决,谢谢各位!
end;
end;
procedure TForm1.writeClick(Sender: TObject);
begin
emprec.ename:=edit1.Text;
emprec.age:=strtoint(edit2.Text);
emprec.sal:=strtoint(edit3.Text);
write(empfile,emprec);//这里也是
edit1.Clear;
edit2.Clear;
edit3.Clear; 展开
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Name: TStaticText;
Age: TStaticText;
Salary: TStaticText;
Name1: TStaticText;
Age1: TStaticText;
Salary1: TStaticText;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Open: TButton;
write: TButton;
open1: TButton;
read: TButton;
Button5: TButton;
procedure OpenClick(Sender: TObject);
procedure writeClick(Sender: TObject);
procedure open1Click(Sender: TObject);
procedure readClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
type
TEmpRec=record
ename:string[10];
age:integer;
sal:real;
end;
var
emprec: TEmprec;
EmpFile: file of TEmprec;
last: longint;
procedure TForm1.OpenClick(Sender: TObject);
begin
try
AssignFile(EmpFile,'d:\emp.$$$');
reset(EmpFile);
last := filesize(EmpFile);
seek(EmpFile,last);
except
Rewrite(EmpFile);
end;
end;
procedure TForm1.open1Click(Sender: TObject);
begin
assignfile(empfile,'d:\emp.$$$');
reset(empfile);
end;
procedure TForm1.readClick(Sender: TObject);
begin
if not eof(empfile) then
begin
read(empfile,emprec);
edit4.text:=emprec.ename;
edit5.Text:=inttostr(emprec.age);
edit6.Text:=inttostr(emprec.sal);
end;
end;
procedure TForm1.writeClick(Sender: TObject);
begin
emprec.ename:=edit1.Text;
emprec.age:=strtoint(edit2.Text);
emprec.sal:=strtoint(edit3.Text);
write(empfile,emprec);
edit1.Clear;
edit2.Clear;
edit3.Clear;
end;
end.
read(empfile,emprec);//这里编译通不过 错误提示:1.[DCC Error] Unit1.pas(74): E2035 Not enough actual parameters 2.[DCC Error] readfile.pas(74): E2014 Statement expected, but expression of type 'TButton' found这里是不是因为没找到read()这个方法,请问怎么解决。 edit4.text:=emprec.ename;
edit5.Text:=inttostr(emprec.age);
edit6.Text:=inttostr(emprec.sal);// 这个问题已解决,谢谢各位!
end;
end;
procedure TForm1.writeClick(Sender: TObject);
begin
emprec.ename:=edit1.Text;
emprec.age:=strtoint(edit2.Text);
emprec.sal:=strtoint(edit3.Text);
write(empfile,emprec);//这里也是
edit1.Clear;
edit2.Clear;
edit3.Clear; 展开
5个回答
展开全部
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函数不应该有问题,如上所示,是不是其它地方引起的?
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呢?
前面的看不明白怎么回事,这个是你定义错了撒
定义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
参数不够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
追问
谢谢!我找个帮助文档查查。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2016-02-08 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:25897
获赞数:1464977
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。
向TA提问 私信TA
关注
展开全部
Delphi同Object Pascal一样支持三种文件类型,即:文本文件、记录文件、无类型文件。
文本文件
文本文件类型的变量用如下方法声明:
var
TextFileVar: Text ;
文本文件是以行为单位进行读、写操作的。由于每一行长度不一定相同,不能计算出给定行在文件中的确切位置,因而只能顺序地读写。而且文本文件只能单独为读或写而打开,在一个打开的文本文件上同时进行读、写操作是不允许的。
记录文件
记录文件是一种操作更为灵活的文件类型。它允许同时为读和写打开,而且由于记录文件中每条记录的长度固定,所以可随机存取。记录文件的类型变量可如下声明:
var
RecordFileVar: file of RecordType;
RecordType是一个自定义的记录类型。
无类型文件
无类型文件提供了底层的I/O通道,可用于存取可变长度记录的文件。经常用于文件的复制操作中。由于Delphi提供了更好的方法,所以无类型文件很少使用。
文本文件
文本文件类型的变量用如下方法声明:
var
TextFileVar: Text ;
文本文件是以行为单位进行读、写操作的。由于每一行长度不一定相同,不能计算出给定行在文件中的确切位置,因而只能顺序地读写。而且文本文件只能单独为读或写而打开,在一个打开的文本文件上同时进行读、写操作是不允许的。
记录文件
记录文件是一种操作更为灵活的文件类型。它允许同时为读和写打开,而且由于记录文件中每条记录的长度固定,所以可随机存取。记录文件的类型变量可如下声明:
var
RecordFileVar: file of RecordType;
RecordType是一个自定义的记录类型。
无类型文件
无类型文件提供了底层的I/O通道,可用于存取可变长度记录的文件。经常用于文件的复制操作中。由于Delphi提供了更好的方法,所以无类型文件很少使用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
请问,你想问什么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询