当前位置: 代码迷 >> VFP >> VFP中set path命令应如何用
  详细解决方案

VFP中set path命令应如何用

热度:5206   发布时间:2013-02-26 00:00:00.0
VFP中set path命令应怎么用
用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 ,肯定有地方改变了这个值。
  相关解决方案