在FoxBASE中使用PRG文件的限制
file does not exist
RETURN
^
called from - D:pubdate.prg
pubdate.prg不能返回,再运行仍然是此错误,调试程序无法进行,就想方设法查找故障原因。
首先怀疑是因为软盘满,中止拷贝而留下一个错误信息造成。笔者到A盘执行程序,pubdate.prg能返回。
其次,怀疑是隐含子目录引起,于是取消了子目录隐含属性,但故障依然。
再次,笔者怀疑是因为为欺骗PCTOOLS给子目录一个超长长度所致,笔者又把其改为正常的子目录,故障依旧。
这种错误实在难以理解,笔者就把所有文件拷贝到一个名叫SWAP的子目录中,再运行程序,程序能正常运行。忽然想到会不会是子目录名的问题,在SWAP子目录可以运行而在JY.Z子目录不正常,它们的差别是,不能正常运行的子目录下多一个扩展名“.Z”,是不是由此引起呢?试着把JY.Z改名为JY结果程序能返回上级程序,故障排除。
原来出现以上错误的原因是:在有扩展名的子目录下运行PRG文件时,从被调用模块返回时,由于不能正确保存程序执行路径,因此出现找不到返回文件的错误。笔者又做了几个类似试验,证实了以上结论。
由此说明FoxBASE在运行PRG文件时,prg文件不能放在有扩展名的子目录中。
笔者所用FoxBASE版本是2.1,操作系统PC DOS3.30,386兼容机。
(张建勇)