运行时错误 104 帕斯卡
Runtime error 104 Pascal
我对使用文件还很陌生,我真的很难解决这个问题,任何帮助都会很棒。
似乎错误来自我的读取数组函数,但不完全是
当然我也不确定 104 错误的真正含义
提前致谢
program ReadFromFile;
type
lineArray = array [0..19] of String;
procedure PrintArray(lines: lineArray);
var
i: Integer;
begin
for i:=0 to High(lines) do
begin
WriteLn('Text is: ', lines[i], ' Line number is: ', i);
end;
end;
function ReadArray(var myFile: TextFile):lineArray;
var
count : Integer;
lines : lineArray;
i: Integer;
begin
ReadLn(myFile, count);
for i := 0 to count do
begin
ReadLn(myFile, lines[i]);
end;
result := lines;
end;
procedure Main();
var
myFile: TextFile;
line: lineArray;
begin
AssignFile(myFile, 'mytestfile.dat');
ReWrite(myFile);
line:=ReadArray(myFile);
Close(myFile);
AssignFile(myFile, 'mytestfile.dat');
Reset(myFile);
PrintArray(line);
Close(myFile);
end;
begin
Main();
end.
你不知道那个错误是什么意思。我也没有忘记。所以,让我们在文档中查找并找出答案。网络搜索将我们带到这里:https://www.freepascal.org/docs-html/user/userap4.html
File not open for input
Reported by Read, BlockRead, Eof, Eoln, SeekEof or SeekEoln if the file is not opened with Reset.
您要求以错误的方式打开文件。调用Reset
打开读取,Rewrite
打开写入。
备注:
- 从 0 循环到
count
将执行 count + 1
次迭代。我希望看到你从 0 循环到 count - 1
。
- 你没有检查你的数组是否足够长。因此,您 运行 缓冲区超过 运行 的风险。动态数组可以避免这种情况。
- 不清楚为什么在将内容打印到控制台时第二次打开该文件。
- 您可以自己查找错误代码。下次遇到此类错误时,请根据提示进行网络搜索。
我对使用文件还很陌生,我真的很难解决这个问题,任何帮助都会很棒。 似乎错误来自我的读取数组函数,但不完全是 当然我也不确定 104 错误的真正含义 提前致谢
program ReadFromFile;
type
lineArray = array [0..19] of String;
procedure PrintArray(lines: lineArray);
var
i: Integer;
begin
for i:=0 to High(lines) do
begin
WriteLn('Text is: ', lines[i], ' Line number is: ', i);
end;
end;
function ReadArray(var myFile: TextFile):lineArray;
var
count : Integer;
lines : lineArray;
i: Integer;
begin
ReadLn(myFile, count);
for i := 0 to count do
begin
ReadLn(myFile, lines[i]);
end;
result := lines;
end;
procedure Main();
var
myFile: TextFile;
line: lineArray;
begin
AssignFile(myFile, 'mytestfile.dat');
ReWrite(myFile);
line:=ReadArray(myFile);
Close(myFile);
AssignFile(myFile, 'mytestfile.dat');
Reset(myFile);
PrintArray(line);
Close(myFile);
end;
begin
Main();
end.
你不知道那个错误是什么意思。我也没有忘记。所以,让我们在文档中查找并找出答案。网络搜索将我们带到这里:https://www.freepascal.org/docs-html/user/userap4.html
File not open for input
Reported by Read, BlockRead, Eof, Eoln, SeekEof or SeekEoln if the file is not opened with Reset.
您要求以错误的方式打开文件。调用Reset
打开读取,Rewrite
打开写入。
备注:
- 从 0 循环到
count
将执行count + 1
次迭代。我希望看到你从 0 循环到count - 1
。 - 你没有检查你的数组是否足够长。因此,您 运行 缓冲区超过 运行 的风险。动态数组可以避免这种情况。
- 不清楚为什么在将内容打印到控制台时第二次打开该文件。
- 您可以自己查找错误代码。下次遇到此类错误时,请根据提示进行网络搜索。