So Strange!(关于ReWrite)(30分)

  • 主题发起人 主题发起人 zypeny
  • 开始时间 开始时间
Z

zypeny

Unregistered / Unconfirmed
GUEST, unregistred user!
var
F: TextFile;
begin
AssignFile(F,MyFile);
MessageDlg(IntToStr(IOResult),mtWarning,[mbOK],0);
ReWrite(F);
CloseFile(F);
MessageDlg(IntToStr(IOResult),mtWarning,[mbOK],0);
end;
对话框先是显示'0',即没有出错;
再显示'103',即文件没有打开??!!
为什么ReWrite打不开文件?
 
是不是 CloseFile(F); 坏的事?
 
你已经把文件关闭了,当然要显示没打开了,很正常阿
 
AssignFile(F,MyFile);
MessageDlg(IntToStr(IOResult),mtWarning,[mbOK],0); //显示0
{$I-}
ReWrite(F);
MessageDlg(IntToStr(IOResult),mtWarning,[mbOK],0); //显示32 ???
CloseFile(F);
MessageDlg(IntToStr(IOResult),mtWarning,[mbOK],0); //显示103

我把它单独拿出来没一点问题,分别显示0,0,0。
可它在的程序中会受到什么影响呢,实在想不通!
 
我用的是Delphi5,当然是盗版的啦。
不知你们用Delphi5有没有出现过怪现象? //Sigh...



 
AssignFile(F,MyFile); 只是建立一个关联,没有文件操作当然不会有IO错误,所以显示0
所以是Rewrite出问题了,把它放第二句看看就知道了
 
所有的奇怪现象如下: 均只出现于我的程序中,单独拿出来一点问题没有.
1.入去掉文件名的后缀: txt则运行无误.
2.在Rewrite 前试图先删除文件,则出现error"File access denied"
 
是不是在此之前,你在什么地方把这个.txt打开了?
 
谢天谢地!我也刚刚查出来:
前面打开这个文件时,在异常跳转出没有CloseFile;我写的正常运行的CloseFile没有执行!
谢谢大家!
还是让Kang最后说中了!
难道wjiachun的 CloseFile(F)是指前次的,我怎么没有领会.
 
后退
顶部