000C50BC I / O错误103时数据模块中的异常EInoutError

时间:2009-09-21 17:46:49

标签: delphi

我在Delphi4中运行了一个应用程序然后我得到了 错误

  

000C50BC I / O错误103时数据模块中的异常EInoutError

我基本上......无法做出正面或反面....我无法通过Delphi GUI 打开/运行.exe文件但是能够运行它。

请帮助。

    {
****************************************************************************
* The WritelnXx routines are used to send status information to standard
* output.
****************************************************************************
}
procedure WritelnIn(const s: string; level: integer = 0); overload;
  var
    i: Integer;
  begin
    for i := 1 to level do Write('    ');
    **Writeln(s);**
  end;

procedure WritelnIn(const s: string; e: Exception; level: integer = 0); overload;
  begin
    WritelnIn(s + '[' + e.message + ']', level);
  end;

procedure WritelnAb(const s: string; level: integer = 0); overload;
  begin
    WritelnIn(s, level);
    Abort;
  end;

procedure WritelnAb(const s: string; e: Exception; level: integer = 0); overload;
  begin
    WritelnIn(s, e, level);
    Abort;
  end;

错误显示在“ Writeln; s; ”...同一文件中DataMagr.dpr

2 个答案:

答案 0 :(得分:5)

I / O错误103是文件未打开。根据Delphi 7帮助文件:

“如果文件未打开,则由CloseFile,读/写,搜索,Eof,FilePos,FileSize,Flush,BlockRead或BlockWrite报告。”

此外,这与您提供上述链接的其他问题有什么关系?

答案 1 :(得分:4)

确保将应用程序编译为控制台应用程序{$ APPTYPE CONSOLE},因为调用Write或Writeln写入stdout并且控制台未打开,它将像这样失败。使用{$ APPTYPE CONSOLE}将产生使用启动应用程序的现有控制台的副作用,或创建一个新的控制台窗口以供使用。

另一种解决方案是将输出标准文本文件(stdout)重定向到文件。试试这个:

AssignFile(Output, 'logfile.log');
Rewrite(Output);

现在所有常规的“Write”或“Writeln”调用都将转到“logfile.log”文件。