请教:关于ReWrite使用时出的问题(100分)

  • 主题发起人 主题发起人 base2
  • 开始时间 开始时间
B

base2

Unregistered / Unconfirmed
GUEST, unregistred user!
最正常的操作:新建文件并写入, 有则覆盖
Procedure Convertion(const F: String);
var
StandFile: Textfile;
begin
Assignfile(standfile, 'c:/' + ExtractFileName(F));
Rewrite(standfile);
...
可是一执行就错误提示:Invalid filename,光标指向Rewrite一行
怎么回事?急死我了,大虾救命则个!!
 
ExtractFileName(F)已经包含路径啦,在加C:/当然错啦!Example 'C:/C:/aa.txt'
 
说错了吧?
假设我的F='c:/aa.txt'
那么extractfilename(f)就是'aa.txt'
怎么会错呢?
总之不是那的问题,我用showmessage看过的没问题呀
 
这段程序没有错,看看调用过程时的 "F" 参数传的是否有误。
 
唉,都没有问题呀
想问一下究竟那个Invalid filename一般出现在什么地方?
 
我有一次是这样:
在文件名里有一个斜杠 '财务/报表'
然后存盘的时候就无缘无故退出。
你可以看看是不是这种错误。
 
传递的参数f有问题
是不是有不合法字符
 
我现在已经改成:
Procedure tfrmconvert.test;
var
lll: Textfile;
begin
assignfile(lll, 'c:/asdf.txt');
rewrite(lll);
closefile(lll);
end;
可还是出错!怎么回事?我另写一个应用程序就没事
可是在这个工程里调用就出错,究竟这个错误是在什么情况下出现的?
 
ft,再一看,用reset,append原来也出同样的错误:(
 
你的该工程在其他地方已经有错了,这样改吧!

{$I-} // 必须加,可以捕获I/O错
Procedure tfrmconvert.test;
var
lll: Textfile;
begin
If (IOResult<>0) Then Asm NOP End
// 必须加,消除原来的错误!

assignfile(lll, 'c:/asdf.txt');
rewrite(lll);
closefile(lll);
end;

大功告成也!!!
 
你的错误意思是无效的文件名,这怎这样做做把看看 ExtractFileName(F)到底能
返回什么,然后再试。
 
怎么还不采用我的意见 ??? !!!
 
var
lll: file;
begin
assignfile(lll, 'c:/asdf.txt');
rewrite(lll,1);
closefile(lll);
end;
 
后退
顶部