读取文本文件时触发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
相关产品推荐
相关产品推荐

