关于主文件设置安装路径问题?请各位指点!!

daniel2008 2003-05-29 02:15:46
具体为:
我的主文件中开始执行第一个表单文件,是用相对路径(do form kq\...scx)
,制作安装盘后,安装在c:\program files\...下面。问题是:
当前路径取为c:\,而不是c:\progra files\kq

请各位指点如何在主文件中设置安装路径?谢!!
...全文
142 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
daniel2008 2003-06-26
  • 打赏
  • 举报
回复
谢谢各位支持!!!
xiolig 2003-06-08
  • 打赏
  • 举报
回复
以下是对你的代码的改进:
LOCAL lcPath
lcPath = LEFT(SYS(16),RAT("\",SYS(16)))
SET DEFAULT TO (lcPath)
SET PATH TO form,report,menu,data,picture,system,backup
* 是不是应该把所有子目录都加入路径,有待考证!
引用实例:
USE myTable &&可能等价于 USE data\myTable
DO FORM myForm &&可能等价于 DO FORM form\myForm
说明:
也可以明确地加上路径引用,如:REPORT FORM report\myReport ...
有时必须加上路径,如: COPY TO backup\myBakTable

xiolig 2003-06-08
  • 打赏
  • 举报
回复
怎么不可以,设置路径的时候把路径用引号引起来,如:
SET PATH TO "C:\Program Files\myProg\"
daniel2008 2003-06-08
  • 打赏
  • 举报
回复
关键是不能安装在program files目录下...
daniel2008 2003-06-08
  • 打赏
  • 举报
回复
关键是不能安装在program files目录下...
qufusongyu 2003-06-07
  • 打赏
  • 举报
回复
LOCAL lcPath
lcPath = SYS(16,0)
lcPath = LEFT(lcPath,RAT("\",lcPath))
SET DEFAULT TO (lcPath)
daniel2008 2003-06-06
  • 打赏
  • 举报
回复
我是这样处理的:
PUBLIC path0,path1,path2,path3,path4,path5,path6,path7,path8
path0=LEFT(SYS(16),RAT("\",SYS(16)))
IF RIGHT(path0,1)="\"
path0=LEFT(path0,LEN(path0)-1)
ENDIF
path1=path0+'\form'
path2=path0+'\report'
path3=path0+'\menu'
path4=path0+'\data'
path5=path0+'\picture'
path6=path0+'\system'
path7=path0+'\temp'
path8=path0+'\backup'
SET PATH TO &path1,&path2,&path3,&path4,&path5,&path6,&path7,&path8

在程序中是: do form &path1\*.scx
现在是用一软件创建安装盘,可安装在其它目录,就是不能安装在 program files下.这是为何?不知各位是如何处理的?
xiolig 2003-06-06
  • 打赏
  • 举报
回复
把路径和文件名用引号引起来,如:
USE "my prog\mytable"
USE ("my prog\mytable")
daniel2008 2003-06-06
  • 打赏
  • 举报
回复
************************************************
************* *************
************* 问 题 *************
************* *************
************************************************
谢谢各位.现有一新问题??????????????????????????????????????
为什么我的安装程序安装在program files中间有带空格的目录 下面会出错,其它的地方则 不会呢??
请各位帮我一下,是不是可以在创建安装盘时设置??????????????????????
*********************************************************************

daniel2008 2003-06-06
  • 打赏
  • 举报
回复
谢谢各位.现有一新问题??????????????????????????????????????
为什么我的安装程序安装在program files中间有带空格的目录 下面会出错,其它的地方则不会呢??
请各位帮我一下,是不是可以在创建安装盘时设置??????????????????????

xiolig 2003-05-29
  • 打赏
  • 举报
回复
总算把问题给说清楚了,我晕!!!!!
你的源程序引用了大量的绝对路径。
没办法,改源程序,如:
DO \kqsystem\... -> DO ...
否则,只能把程序安装到某个盘的 \kqsystem 下去使用。
daniel2008 2003-05-29
  • 打赏
  • 举报
回复
我的考勤程序是在d:\kqsystem\下编写的。
代码里面的路径全部是 do \kqsystem\...
现制作成安装盘安装后,也把相应整个 kqsystem\..文件放在了 c:\program files\下了。
如果安装随便一根目录则可以。
现在不能得到 安装目录 的路径?

xiolig 2003-05-29
  • 打赏
  • 举报
回复
第一,你的路径设置应该是:
SET PATH TO form,data,report,system\data\qx
注:我想你可能错把 Data 拼写成了 Date。
第二,你说得并不明白,你的安装路径应该是 c:\program files\... 吧
第三,你还得把你的源程序目录结构说明一下,比说 ma.dbf (最好是安装之后)的位置到底是什么? (不妨到安装过后的目录下亲自去查看一下!)
daniel2008 2003-05-29
  • 打赏
  • 举报
回复
老哥,还是没有用。我的主文件代码为:

Set hours to 24
set noti on
set clock statu
set cons off
set excl on
set clock on
set exac on
set statu off
set notify off
set safe off
set sysmenu off
_screen.backcolor=9803038
_SCREEN.MOVABLE=.F.
_screen.maxbutton=.t.
_screen.windowstate=2
_SCREEN.AUTOCENTER=.T.
_screen.closable=.f.

_screen.caption=' lp-III ¿¼ÇÚϵͳVER 6.4°æ ·ÉÓ¥¹¤×÷ÊÒ COPYRIGHT(C)ALL RIGHTS RESERVED 2001Äê11ÔÂ'
wait windows 'ÕýÔÚÕûÀíÁÙʱÊý¾Ý,ÇëÉÔºò... ...'timeout 1
set safe on
set cent on
set esca off

LOCAL lcPath
lcPath = SYS(16,0)
lcPath = LEFT(lcPath,RAT("\",lcPath))
SET DEFAULT TO (lcPath)
SET PATH TO form,set PATH TO date,set PATH TO report,set PATH TO system\date\qx

do form kqsystem\system\form\enter
read events

制作安装盘后,安装在c:\program files下
当我在enter登录表单中检测密码时(密码放在kqsystem\system\date\qx\ma
),老是出现 use c:\kqsystem\system\date\qx\ma.dbf不存在。
所搜索的路径总是C:\,而不是 c:\program files\kqsystem\...
针对此,请帮我解决一下此问题?
daniel2008 2003-05-29
  • 打赏
  • 举报
回复
我正在测试。等待结果,请稍候再来帮我一把。谢
xiolig 2003-05-29
  • 打赏
  • 举报
回复
续:一个比较完整的例子:
lcPath = SYS(16,0)
lcPath = LEFT(lcPath,RAT("\",lcPath))
SET DEFAULT TO (lcPath)
SET PATH TO PROGS,FORMS,DATAS
....
DO ...
DO FORM ...
USE ...
daniel2008 2003-05-29
  • 打赏
  • 举报
回复
两位大哥:
可否提供这方面的例子给我。关键是我每一代码中所用的都是 do \kq\...相对路径,
按照两位的去则需要更改每一个代码。
我的email: lyp9708015@sohu.com
xiolig 2003-05-29
  • 打赏
  • 举报
回复
续:因此,只要我们把 lcPath 设置成默认路径,我们就可以不对源程序进行任何修改:
SET DEFAULT TO (lcPath)
DO PROGS\...
DO FORM FORMS\...
USE DATAS\...
如有必要,还可以设置搜索路径:SET PATH TO .....
zhongyj 2003-05-29
  • 打赏
  • 举报
回复
那就用 xiolig的方法,但要確認lcPath與你定義的相对路径是否匹配
xiolig 2003-05-29
  • 打赏
  • 举报
回复
假设源程序目录结构如下:
PROGS: 存放所有过程文件,含启动程序 main.prg
FORMS:存放所有表单文件
DATAS:存放所有数据文件
假设编译后的程序文件为 myProg.EXE,并安装到 C:\Program Files\QQ下
这个时候我们执行相应 EXE 程序文件,SYS(16,0) 获得的结果将是:
C:\Program Files\QQ\myProg.EXE
去掉后面的文件名,剩下的就是程序所在的绝对路径,存入变量 lcPath,则有:
DO (lcPath + "PROGS\...")
DO FORM (lcPath + "FORMS\...")
USE (lcPath + "DATAS\...")
注:在未编译成EXE文件前所有差别。
加载更多回复(3)

2,749

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧