You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

读取文本文件时触发I/O错误104,请求排查Delphi代码问题

Delphi读取文件触发I/O错误104的问题解决

你的代码里的核心错误非常明显:在读取Profile.txt关联的TP文件时,误用了已经关闭的TU文件变量。

具体来说,你已经在第一个文件操作块执行了CloseFile(TU),关闭了TU对应的文件,但在第二个读取步骤里,依然写了Readln(TU, sUser),而不是应该操作的TP变量。访问已关闭的文件句柄就会触发I/O错误104。

修正后的代码如下:

procedure TfrmAvatar.FormShow(Sender: TObject);
var
  sLocation: String;
  TU, TP: textfile;
  sUser: string;
  iTemp: integer;
begin
  sLocation := ExtractFileDir(ExtractFileDir(ExtractFileDir(ParamStr(0))));
  AssignFile(TU, (sLocation + '\Username.txt'));
  Reset(TU);
  Readln(TU, sUser);
  edtUser.Text := sUser;
  CloseFile(TU);

  AssignFile(TP, (sLocation + '\Profile.txt'));
  Reset(TP);
  Readln(TP, sUser);  // 此处改为操作TP变量
  ShowMessage(sLocation + sUser);
 
  imgAvatar.Picture.LoadFromFile(sLocation + sUser);
  CloseFile(TP);
end;

内容的提问来源于stack exchange,提问作者Protoyp8

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 17:01:17