我几个月没碰到它后才回到德尔福。只想稍微刷新我的想法。
我一直在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();
。
答案 0 :(得分:2)
根据代码,有点难以看出错误的来源。一种可能性是你注销静态大小的数组的末尾。
根本不需要阵列。您可以使用string
类型的单个变量来读取每一行。
虽然这样会更容易:
procedure TForm1.btn1Click(Sender: TObject);
begin
redOut.Lines.LoadFromFile('names.txt');
end;