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

Delphi 10.3读取文本文件至数组时出现“file not found”错误求助

嘿,我明白你现在复习Delphi数组时遇到的文件读取问题有多头疼——尤其是马上要测试了,这种小bug真的很影响节奏。咱们一步步来解决这个“file not found”的问题:

排查与解决步骤

1. 先确认Delphi的实际工作目录

Delphi默认的运行工作目录不一定是你代码所在的文件夹,比如可能默认指向Documents\Embarcadero\Studio\Projects这类系统路径。你可以在代码开头加一行来验证当前路径:

ShowMessage(GetCurrentDir);

运行后弹出的路径就是程序实际找文件的位置。你可以:

  • 把文本文件移到这个路径下
  • 或者在代码里直接写绝对路径指定文件位置,比如:
    var
      MyFile: TextFile;
    begin
      AssignFile(MyFile, 'C:\Users\你的用户名\Desktop\你的项目文件夹\data.txt');
      Reset(MyFile);
      // 后续读取逻辑
      CloseFile(MyFile);
    end;
    

2. 检查文件名的“隐形陷阱”

Windows默认会隐藏已知文件的扩展名,比如你看到的data.txt其实可能是data.txt.txt。可以在文件夹选项里开启「显示文件扩展名」,然后仔细核对代码里的文件名和实际文件名是否完全一致(包括大小写,虽然Windows不区分,但严格对应更稳妥)。

3. 确保文件真的在项目目录里

右键你的Delphi项目,选择「Open in Explorer」打开项目文件夹,确认文本文件确实在这个文件夹内,而不是放在了上级目录或者其他位置。

4. 用项目管理自动同步文件(推荐)

如果不想每次都手动挪文件,可以把文本文件加入项目:

  • 右键项目 → Add → Existing Item,选中你的文本文件
  • 在项目管理器里右键这个文件,选择「Properties」
  • 把「Build Action」设为「Copy to Output Directory」(选「Copy always」或「Copy if newer」都可以)
    这样编译时文件会自动复制到程序运行的输出目录,用相对路径就能直接找到。
读取文件到数组的示例代码

给你一个完整的参考示例,你可以对照自己的代码调整:

program ReadFileToArray;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils;

var
  MyFile: TextFile;
  Line: string;
  StringArray: array of string;
  I: Integer;
begin
  try
    // 替换成你的文件路径,或用上面的方法确保文件可被找到
    AssignFile(MyFile, 'test.txt');
    Reset(MyFile);

    // 先统计行数,动态设置数组大小
    I := 0;
    while not Eof(MyFile) do
    begin
      ReadLn(MyFile, Line);
      Inc(I);
    end;
    SetLength(StringArray, I);

    // 回到文件开头,读取内容到数组
    Reset(MyFile);
    for I := 0 to High(StringArray) do
    begin
      ReadLn(MyFile, StringArray[I]);
      Writeln(StringArray[I]); // 输出验证读取结果
    end;

    CloseFile(MyFile);
    ReadLn; // 暂停窗口查看结果
  except
    on E: Exception do
      Writeln('错误信息: ', E.Message);
  end;
end.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 20:33:09