我使用IOResult来验证文件的存在,当文件存在时,一切正常,但是当文件不存在时,程序突然关闭。
我尝试尝试-除了捕获异常外,问题仍然存在,也许我没有正确使用异常?但不确定如何使用它。
function verifyExistence(var input:text):boolean;
var x:word; //IOResult
var r:boolean;
begin
try
{$I-}
reset(input);
{$I+}
x:=IOResult;
except on E: EInOutError do begin
r:=false;
exit;
end;
end;
if (x <> 0) then
r:=false //File does not exist
else
r:=true; //File exists
close(input);
verifyExistence:=r;
end;
procedure fopen(var path:string);
var exists:boolean;
begin
writeln('Specify file path. Example: C:\Users\Frank\Desktop\example.txt');
readln(path);
assign(input,path);
exists:=verifyExistence(input);
if exists then begin
//writeln('File exists');
end
else begin
writeln('File does not exist');
end;
end;
答案 0 :(得分:1)
这是我解决问题的方法:
我删除了verifyExistence函数,只是像这样打开了fopen:
procedure fopen(var path:string);
begin
writeln('Specify file path. Example: C:\Users\Frank\Desktop\example.txt');
readln(path);
if not FileExists(path) then begin
writeln('File does not exist');
exit;
end;
assign(input,path);
end;
感谢您的帮助