用set path to &oldpath总是出错,望大家指点指点。
local oldpath,newpath
oldpath=set("path")
set path to newpath
set path to &oldpath&&运行二次以上后出现“递归宏定义”,不知怎么解决。
后来我改成
local oldpath,newpath
oldpath=set("path")
set path to newpath
set path to
set path to &oldpath
但还是不行,这是什么原因。
------解决方案--------------------------------------------------------
关于设置相对路径,以下供参考:
*设置默认路径可用以下三种方法:
*方法一:
**********************
PUBLIC LCNowpath
LCNowpath=SYS(5)+SYS(2003)+"\"
set default to "&LCNowpath" &&设置默认工作目录
**********************
*方法二:
**********************
PUBLIC LCSys16,LCNowpath
LCSys16=SYS(16) &&获取当前程序所在的全路径,包括当前运行程序名。
LCNowpath=LEFT(LCsys16,RAT("\",LCSys16,1)) &&获取当前运行程序所在工作目录。
set default to "&LCNowpath" &&设置默认工作目录
**********************
*方法三:(指定程序名)
**********************
PUBLIC LCNowpath
prgname="你的程序名.exe"
prglen=len(prgname)
allname=allt(sys(16))
alllen=len(allname)
LCNowpath=substr(allname,1,alllen-prglen)
set default to "&LCNowpath" &&设置默认工作目录
**********************
--------------------------------------------------------------------
除了上面的SET DEFAULT TO "&lcprogram" 这种方式外,还有一种方式是使用名称表达式:
SET DEFAULT TO (lcprogram)
------解决方案--------------------------------------------------------
1、看看 oldpath 是什么内容,尤其是出错时。
2、oldpath内容没有问题时,
将
set path to &oldpath
改为
set path to (oldpath)
或
set path to '&oldpath'
------解决方案--------------------------------------------------------
运行了几次后看一下oldpath的值是什么,有没有被改掉
------解决方案--------------------------------------------------------
整个工程中搜索 oldpath ,肯定有地方改变了这个值。