找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 350|回复: 3

[VFP问题]用VFP做个软件遇到相对路径问题

[复制链接]
发表于 2006-5-6 09:21:00 | 显示全部楼层 |阅读模式

用VFP 9.0 基本做好了一个软件,可是放到其他的目录下就无法运行,提示无效路径或文件名!


我的主程序如下,大家帮忙看下,先谢了!

DECLARE INTEGER FindWindow IN WIN32API STRING,STRING
LOCAL cTitle
cTitle="-系统-"
IF FindWindow(0,cTitle)<>0
=MESSAGEBOX("该系统已运行,无需重复!",48,"错误信息")
QUIT
ENDIF
CLEAR SCREEN
CLEAR
CLOSE ALL
CLEAR ALL
SET TALK OFF
SET SYSMENU OFF
SET SYSMENU TO
SET TALK OFF
SET STEP OFF
SET ECHO OFF
SET SAFETY OFF
SET DELETED ON
SET OPTIMIZE ON
SET CENTURY ON
SET DATE TO ANSI
SET MARK TO "-"
_screen.caption="系统"
ON ERROR DO errhand WITH ERROR(),MESSAGE(),MESSAGE(1),PROGRAM(),LINENO()
RELEASE WINDOW
RELEASE WINDOW
mypath=SYS(5)+SYS(2003)
set DEFA TO &mypath
set path to &mypath
DO form 系统登陆
READ EVENTS
close all
clear all
QUIT
PROCEDURE errhand &&错误检测
PARAMETER merror,MESS,mess1,mprog,mlineno
=MESSAGEBOX("错误代码:"+LTRIM(STR(merror))+", 错误信息:"+MESS+" 错误代码串:"+mess1+", 错误行号:"+LTRIM(STR(mlineno))+", 出错程序名:"+mprog +" 按确定后退出系统!请重新运行!!")
QUIT
RETURN
 楼主| 发表于 2006-5-6 19:11:00 | 显示全部楼层

刚才在编程爱好者上,有高手帮搞定了,哈哈



我写的代码:


mypath=SYS(5)+SYS(2003)
set DEFA TO &mypath
set path to &mypath



引用:


&mypath
&mypath
这种宏替换路径、文件名绝对不要使用宏替换,因为一来宏替换效率很低,二来,最重要的是当你的路径中含有空格时,宏替换以后的命令是语法错误的。
例如,你将程序目录放到桌面上(windows 2000或XP)
mypath的值为c:\\Documents and Settings\\xxx\\桌面


set DEFA TO &mypath被宏替换以后变成:
set DEFA TO c:\\Documents and Settings\\xxx.yyyy\\桌面 注意 and 的两边是有空格的,这个命令执行后一定会出现"无效的路径或文件名",因为不存在一个叫c:\\Documents 的目录



正确的做法为使用括号表达式:
set DEFA TO (mypath)
set path to (mypath)


经验啊,我搞了2天了,问了好多人都没实质解决,现在搞顶,舒服多了
现在去研究打包成安装文件,可以安装。呵呵









回复

使用道具 举报

发表于 2006-5-10 14:38:00 | 显示全部楼层
VFP 用啥语言?
回复

使用道具 举报

 楼主| 发表于 2006-5-10 17:28:00 | 显示全部楼层
找本书看下就OK了,呵呵
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表