【发布时间】:2015-01-30 05:36:41
【问题描述】:
在几个月没有接触 Delphi 之后,我才刚刚回到 Delphi。只是想让我的头脑清醒一点。
我不断收到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();。
【问题讨论】:
-
也许您正在读取数组的末尾。数组也是不必要的。一个字符串 var 就足够了。
redOut.Lines.LoadFromFile(...)替换 Q 中的所有代码。 -
MyFile也是个谜。我们看不到它是什么或它住在哪里。 -
@DavidHeffernan 我从来不知道
LoadFromFile()。我只是想记住我去年从一本糟糕的教科书中学到的东西。我想他们的教学方式不是最好的。他们说在使用AssignFile()时,您希望它读取的文件应该与项目位于同一文件夹中,或者其他东西(据我记得)。感谢您提供“LoadFromFile()”。使代码更短! -
你说问题出在一个函数上,但在你的代码中,你指向了别的东西。复制并粘贴您的真实代码以避免浪费他人的时间(包括您自己的时间)。
-
没关系。如果有什么不对劲的地方,我们会让你直截了当。