在DELPHI中读取txt文件时,调试器异常通知错误



我得到一个我以前没有看到的错误。

下面是我的代码:

procedure TfrmPatientViewer.FormCreate(Sender: TObject);
var
  MyArray : array [1..100] of string;
  iCount : Integer;
  Patients : TextFile;
begin
  AssignFile(Patients, 'patients.txt');
  if FileExists('patients.txt') <> True
    then
      begin
        ShowMessage('Patients.txt does not exist, program shutting down');
        Application.Terminate;
      end;
  iCount := 1;
  while not Eof(Patients) do // <-- HERE'S THE ERROR
    begin
      Readln (Patients, MyArray[iCount]);
      redtOut.Lines.Add(MyArray[iCount]);
      inc(iCount);
    end;
end;

错误提示:Project Phase3P.exe has raised an exception class ElnOutError with message 'I/O error 104'. Proccess stopped .

为什么它会这样做,我能做些什么使它正常工作?我已经搜索了周围,只能找到不同的I/O错误,但不是这个104的东西。

好了,我在第四次校对后发现了错误xD

我没有把reset(patients)分配文本文件后,

建议修改错误。

procedure TfrmPatientViewer.FormCreate(Sender: TObject);
var
  MyArray : array [1..100] of string;
  iCount : Integer;
  Patients : TextFile;
begin
  try
    AssignFile(Patients,'patients2.txt');
    reset(Patients);
    iCount := 1;
    while not Eof(Patients) do // <-- HERE'S THE ERROR
      begin
        Readln (Patients, MyArray[iCount]);
        redtOut.Lines.Add(MyArray[iCount]);
        inc(iCount);
      end;
  except
    on E: EInOutError do
    begin
      raise Exception.Create('Patients.txt does not exist, program shutting down');
      Application.Terminate;
    end;
  end;
end;

这样你就不需要检查FileExists了,如果没有找到它就会引发异常。
一个缺点是只有EInOutError例外才会引发消息。

相关内容

  • 没有找到相关文章

最新更新