假设新建了一个程序文件myProc.prg(不存在同名的.exe、.app和.fxp文件),然后在命令窗口输入命令DO myProc,执行该程序并获得正常的结果。现在用命令ERASE myProc.prg删除该程序文件,然后再次执行命令DO myProc,产生的结果是( )。
A.出错(找不到文件)
B.与第一次执行的结果相同
C.系统打开“运行”对话框,要求指定文件
D.以上都不对
参考答案:B
解析: 当用DO命令执行程序文件时,如果没有指定扩展名,系统将按下列顺序寻找该程序文件的源代码或某种目标代码文件执行:.exe(Visual Foxpr0可执行版本)→.app(Visual Foxpro应用程序文件)→.fxp(Visual FoxPro编译版本)→.prg(Visual FoxPro源程序文件)。 如果寻找到的是。prg源程序文件,系统会自动对其进行编译,产生相应的.fxp文件。随后,系统载入新产生的.fxp文件,并运行它。 如果寻找到的是.fxp文件,且SET DEVELOPMENT设置为ON(默认值),那么系统会检查是否存在着一个更新版本的.prg源程序文件。如果存在,系统就会删除原有的.fxp文件,然后重新编译该.prg文件。 本题中,当执行“DO myProc”命令后,由于不存在同名的.exe、.app和.fxp文件,系统对源程序文件myPme.prg进行编译,产生编译文件myProc.fxp,并运行它。当用erase命令删除myProc.prg后,myproc.fxp文件还存在,当再次执行“DO myProc”命令时,系统执行的是myproc.fxp这个编译文件,故结果不变。