读DAT文件的错误 EinoutError
我用delphi 读vc写的一个DAT 文件 在 BlockRead(bFile,stExam,sizeof(Exam)*10,NumRead) 这句时出错并怎么调也过不去。
以下是代码:
DAT 文件格式
Head=record
wHead:DWORD; //文件头标识(判断是否有损坏)
cGrade:array[0..49] of ansichar; //年级
cClassarray:array[0..49] of ansichar; //班级
cCoursearray:array[0..49] of ansichar; //考试科目
cExamTimearray:array[0..19] of ansichar; //考试时间
cTimeSavedarray:array[0..19] of ansichar; //保存该DAT文件的时间
nNumStud:integer; //考生的人数
nNumSub:integer; //题目的数量
BReserved:array[0..9] of Byte; //保留字
end;
Exam=record
cStuID: array[0..11] of ansichar; //学生学号
fScore:single; //学生成绩
BAnswer:array[0..163] of Byte; //每道题的得分情况(设计最大为164道题)0x1:A,0x2:B,0x4:C,0x8:D
fUnit:array[0..163] of single; //每道题的分值
end;
pExam = ^Exam;
***********************************8
procedure TForm1.Button1Click(Sender: TObject);
Var
bFile:file;
NumRead:integer;
stHead:Head;
stExam:array of pExam;
i:integer;
num:integer;
begin
AssignFile(bFile,'c:\111.dat');
Reset(bFile,1);
BlockRead(bFile,stHead,Sizeof(stHead),NumRead);
num:=stHead.nNumStud;
SetLength(stExam,num);
for i:=0 to num-1 do
begin
GetMem(stExam[i],Sizeof(Exam));
end;
BlockRead(bFile,stExam,sizeof(Exam)*10,NumRead);//在这里出错 “io error 998 EinoutError”
for i:=0 to num do
begin
FreeMem(stExam[i]);
end;
stExam:=nil;
CloseFile(bFile);
end;