请各位大虾帮我诊断一段程序!(30分)

  • 主题发起人 MicroStar
  • 开始时间
M

MicroStar

Unregistered / Unconfirmed
GUEST, unregistred user!
一下程序预行时出IO错误!
I/O error 32 和 with error 103
Division by zero
try
if not FileExists(Appdir+'ListSave.vhf') then
begin
AssignFile(TempTextFile,AppDir+'ListSave.vhf');
ReWrite(TempTextFile)
end
else
begin
AssignFile(TempTextFile,AppDir+'ListSave.vhf');
Showmessage('is here ');
Reset(TempTextFile);
Append(TempTextFile);//
WriteLn(TempTextFile,Buf);
Flush(TempTextFile);
end;
// ShowMessage(Buf);
finally
CloseFile(TempTextFile);
end;
end;

 
我试的没有出错呀!
 
你可以将Try ...finally块先注释掉, 参看在那一行出错,
同时查看确切的 Appdir, buf等值,
可能是在FileExists时,便出错了, 导致你TempTextFile值
为空,
Closefile时便出错了.
下面是FileExists的原代码:
function FileExists(FileName: string): Boolean;
{ Boolean function that returns True if the file exists;
otherwise,
it returns False. Closes the file if it exists. }
var
F: file;
begin
{$I-}
AssignFile(F, FileName);
FileMode := 0;
( Set file access to read only }
Reset(F);
CloseFile(F);
{$I+}
FileExists := (IOResult = 0) and (FileName <> '');
end;
{ FileExists }

 
你用的是Delphi哪个版本?
 
huizhang:
我用的是delphi4 5.33 版本
 
在单独的程序里面试当然没有出错,
你肯定是在其他部分打开了此文件,
然后没有关闭,而导致的!
追好的办法:用过一边就关闭FileClose(Handle);
Good Luck
 
问题出在 Append 和 Reset 不能同时使用,他们之中只能用一个。
 
接受答案了.
 

Similar threads

I
回复
0
查看
417
import
I
I
回复
0
查看
716
import
I
I
回复
0
查看
2K
import
I
I
回复
0
查看
716
import
I
I
回复
0
查看
814
import
I
顶部