把你的程序改成下面这样,在len:=filesize(tempfile)前加一句Reset(tempfile); procedure TFileTransForm.FormCreate(Sender: TObject); var TempFile:File of Byte; Len:Integer; begin if(OpenFileDlg.Execute) and (FileExists(OpenFileDlg.FileName)) then begin FileNameEdt.Text:=OpenFileDlg.FileName; AssignFile(TempFile,OpenFileDlg.FileName); Reset(tempfile); Len:=FileSize(TempFile); //运行时,就是这儿出错,不光是text file,什么文件都不行 FileSizeEdt.Text:=IntToStr(Len); end; end;
Reset(TempFile); //应首先打开该文件
Len:=FileSize(TempFile);
procedure TFileTransForm.FormCreate(Sender: TObject);
var
TempFile:File of Byte;
Len:Integer;
begin
if(OpenFileDlg.Execute) and (FileExists(OpenFileDlg.FileName)) then
begin
FileNameEdt.Text:=OpenFileDlg.FileName;
AssignFile(TempFile,OpenFileDlg.FileName);
Reset(tempfile);
Len:=FileSize(TempFile); //运行时,就是这儿出错,不光是text file,什么文件都不行
FileSizeEdt.Text:=IntToStr(Len);
end;
end;