Foxpro编程中的两个小问题

Author: 江西 彭福林 Date: 1996-09-20

        一次在调试程序时,程序运行总是出错,虽然反复修改源程序,却总出现同样的错误,后来将该程序拷贝生成另一个不同文件名的程序时却运行正常,经分析是以下原因:
        在Foxpro系统中,源程序最初运行时,系统会将其编译生成.fxp目标文件,然后再运行该目标文件。以后源程序每次再运行,如果其目标程序的生成时间早于源程序,系统会自动编译重新生成目标文件。我使用的这台计算机的系统时间曾一度向后调整,而前面出错的程序的目标文件恰好是这时生成的。后来该机的系统时间又恢复正常,但每次修改源程序时,由于其生成时间总是在原目标文件之前,故系统不会再重新生成新的目标文件,每次运行实际上是在执行修改错误前的目标文件,才会出现上述现象。
        问题之二:
        在程序运行结束退出时,系统提示读或写硬盘错,不能正常返回。开始我估计是硬盘有坏道,用SCANDISK检查未发现任何问题;后又怀疑是硬盘压缩造成的,经重新格式化硬盘,不对硬盘进行压缩,问题仍存在,最后发现是以下原因所致:
        Foxpro在运行时,会产生很多.tmp文件(临时文件),特别在非正常退出时,会占用很多硬盘空间,所以我在程序结束时增加了一条run *.tmp的语句,旨在删除这些无用的文件,而问题的症结就在此。Foxpro运行时产生的.tmp临时文件,正常退出时会自动删除,在没有退出前,有可能对它再进行读写,而这些文件已被我的程序删除掉了,致使出现上述问题。