使用AssignFile()访问地址00404094的违规行为;

时间:2015-01-30 05:36:41

标签: delphi delphi-7

我几个月没碰到它后才回到德尔福。只想稍微刷新我的想法。

我一直在AssignFile();部分遇到访问冲突。我正在做的只是通过文本文件将名称列表读入丰富的编辑。

procedure TForm1.btn1Click(Sender: TObject);
var
  k : Integer;
  MyArray : array[1..1000] of string;
begin
  k := 1;
  AssignFile(MyFile, 'names.txt');
  Reset(MyFile);
  while not Eof(MyFile) do // <-- Here is the error
    begin
      readln(MyFile, MyArray[k]);
      redOut.Lines.Add(MyArray[k]);
      Inc(k);
    end;
  CloseFile(MyFile);
end;

我记得在Delphi的奇怪时间里多次发现这个错误,但我记得在收到错误时没有使用CloseFile();Reset();

1 个答案:

答案 0 :(得分:2)

根据代码,有点难以看出错误的来源。一种可能性是你注销静态大小的数组的末尾。

根本不需要阵列。您可以使用string类型的单个变量来读取每一行。

虽然这样会更容易:

procedure TForm1.btn1Click(Sender: TObject);
begin  
  redOut.Lines.LoadFromFile('names.txt');
end;