level 6
天麒gft
楼主
源码如下
//2014/9/29 12:53 datebase,成功运行(记录,存储,计数);
unit datebase;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Edit2: TEdit;
Edit3: TEdit;
Label2: TLabel;
Label3: TLabel;
Memo1: TMemo;
Button1: TButton;
Edit4: TEdit;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Memo2: TMemo;
Button5: TButton;
procedure Button1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
type
student_t=record
num :string;
score:integer;
name :string;
end;
var
stu :array[1..128]of student_t;
i :integer=1;
OutputFile:Thandle;
procedure TForm1.Button1Click(Sender: TObject);
begin
stu[i].num :=Edit1.Text;
stu[i].name :=Edit2.Text;
stu[i].score:=StrToInt(Edit3.Text);
Edit4.Text :=IntToStr(i);
Memo1.text :=Memo1.Text
+stu[i].num+* *
+stu[i].name+* *
+IntToStr(stu[i].score)
+
#13#
10;
inc(i);
end;
procedure TForm1.Button3Click(Sender: TObject);
var
read_bytes:dword;
stu_t :array[1..128]of student_t;
begin
OutputFile:=windows.CreateFile(*E:\delphi7\datebase.dat*
,GENERIC_READ
,FILE_SHARE_READ
,nil
,OPEN_ALWAYS
,FILE_ATTRIBUTE_NORMAL
,NULL);
readfile(OutPutFile,
stu_t,
(i-1)*(sizeof(stu[i].num )
+sizeof(stu[i].name)
+sizeof(IntToStr(stu[i].score))),
read_bytes,
nil);
Closehandle(OutputFile);
end;
procedure TForm1.Button4Click(Sender: TObject);
var
write_bytes:dword;
begin
OutputFile:=windows.CreateFile(*E:\delphi7\datebase.dat*
,GENERIC_WRITE
,FILE_SHARE_WRITE
,nil
,CREATE_ALWAYS
,FILE_ATTRIBUTE_NORMAL
,FILE_FLAG_WRITE_THROUGH);
writefile(OutputFile,
stu ,
(i-1)*(sizeof(stu[i].num )
+sizeof(stu[i].name)
+sizeof(IntToStr(stu[i].score))),
write_bytes ,
nil);
Closehandle(OutputFile);
end;
end.
编译成功,使用时报错

大概是因为我的参数设置不正确,但是查了很多网页都没明白该怎摸改,求大神帮助
2014年11月02日 13点11分
1
//2014/9/29 12:53 datebase,成功运行(记录,存储,计数);
unit datebase;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Edit2: TEdit;
Edit3: TEdit;
Label2: TLabel;
Label3: TLabel;
Memo1: TMemo;
Button1: TButton;
Edit4: TEdit;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Memo2: TMemo;
Button5: TButton;
procedure Button1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
type
student_t=record
num :string;
score:integer;
name :string;
end;
var
stu :array[1..128]of student_t;
i :integer=1;
OutputFile:Thandle;
procedure TForm1.Button1Click(Sender: TObject);
begin
stu[i].num :=Edit1.Text;
stu[i].name :=Edit2.Text;
stu[i].score:=StrToInt(Edit3.Text);
Edit4.Text :=IntToStr(i);
Memo1.text :=Memo1.Text
+stu[i].num+* *
+stu[i].name+* *
+IntToStr(stu[i].score)
+
#13#
10;
inc(i);
end;
procedure TForm1.Button3Click(Sender: TObject);
var
read_bytes:dword;
stu_t :array[1..128]of student_t;
begin
OutputFile:=windows.CreateFile(*E:\delphi7\datebase.dat*
,GENERIC_READ
,FILE_SHARE_READ
,nil
,OPEN_ALWAYS
,FILE_ATTRIBUTE_NORMAL
,NULL);
readfile(OutPutFile,
stu_t,
(i-1)*(sizeof(stu[i].num )
+sizeof(stu[i].name)
+sizeof(IntToStr(stu[i].score))),
read_bytes,
nil);
Closehandle(OutputFile);
end;
procedure TForm1.Button4Click(Sender: TObject);
var
write_bytes:dword;
begin
OutputFile:=windows.CreateFile(*E:\delphi7\datebase.dat*
,GENERIC_WRITE
,FILE_SHARE_WRITE
,nil
,CREATE_ALWAYS
,FILE_ATTRIBUTE_NORMAL
,FILE_FLAG_WRITE_THROUGH);
writefile(OutputFile,
stu ,
(i-1)*(sizeof(stu[i].num )
+sizeof(stu[i].name)
+sizeof(IntToStr(stu[i].score))),
write_bytes ,
nil);
Closehandle(OutputFile);
end;
end.
编译成功,使用时报错

大概是因为我的参数设置不正确,但是查了很多网页都没明白该怎摸改,求大神帮助
