以下是引用liuxingang28在2017-10-19 16:54:49的发言:
从本质上看,楼主的问题是一个宏替换如何使用的问题。请看下面的几个例子:
_rb = "2017_日报.dbf"
if file("&_rb") = .f. && 语句1
? "ok1"
endif
if !file("&_rb") && 语句2
? "ok2"
endif
if !file(_rb) && 语句3
? "ok3"
endif
if !file((_rb)) && 语句4
? "ok4"
endif
上面的代码中,只有“语句3”和“语句4”可以正常运行。在FILE()函数中不支持宏替换,这可能是 VFP 的一个 Bug。
若变量 _rb 中含有带空格的文件夹名,如:_rb = "c:\my file\2017_日报.dbf",则最好使用“语句4”格式,也就是用名称表达式代替宏替换。我在64位WIN7+VFP9 SP2 下,使用“语句3”也可以测试通过,但在其他系统下可能有问题,还未测试。
从本质上看,楼主的问题是一个宏替换如何使用的问题。请看下面的几个例子:
_rb = "2017_日报.dbf"
if file("&_rb") = .f. && 语句1
? "ok1"
endif
if !file("&_rb") && 语句2
? "ok2"
endif
if !file(_rb) && 语句3
? "ok3"
endif
if !file((_rb)) && 语句4
? "ok4"
endif
上面的代码中,只有“语句3”和“语句4”可以正常运行。在FILE()函数中不支持宏替换,这可能是 VFP 的一个 Bug。
若变量 _rb 中含有带空格的文件夹名,如:_rb = "c:\my file\2017_日报.dbf",则最好使用“语句4”格式,也就是用名称表达式代替宏替换。我在64位WIN7+VFP9 SP2 下,使用“语句3”也可以测试通过,但在其他系统下可能有问题,还未测试。
我在XP+VFP9 SP2环境下,四种都可以测试通过。如果变量中含有带空格的文件夹名,好象是只能用格式3功格式化。