文件操作的怪事情(100分)

  • 主题发起人 主题发起人 paocai
  • 开始时间 开始时间
P

paocai

Unregistered / Unconfirmed
GUEST, unregistred user!
我先执行了if OpenDialog1.Execute then Edit1.Text:=OpenDialog1.FileName;
然后执行以下代码:
var f:textfile;
s:string;
begin
s:=Edit1.Text;
AssignFile(f,'abc.txt');
rewrite(f);
write(f,s);
closefile(f);
end;

按理说abc.txt应该被建立在当前目录下,可是,怪就怪在,如果我在opendialog1的
对话框打开的是c:/下的文件,那么abc.txt就被建立在c:/abc.txt,如果是d:/,那么就
被建立在d:/abc.txt。难道生成的文件位置和opendialog1有关??如果我用
AssignFile(f,getcurrentdir+'/'+'abc.txt');那么编译时可以通过,但是执行到
rewrite(f)时出错。我想知道这是为什么,我该怎样才能把文件生成在当前目录下??
 
首先你要明白当前路径只有一个,
OpenDialog打开的正是当前路径,
用GetCurrentDir获得的路径也是OpenDialog打开的路径。
两者是一致的。
至于rewrite(f)出错,我试了试,没有出现错误的说。
可能是你其它模块修改了些什么。
一般如果使用AssignFile/CloseFile格式时,
在Rewrite/Reset一句,一般这样写
{$I-} Rewrite(f); {$I+}
if IOResult <> 0 then //出错。
...
 
接受答案了.
 
后退
顶部