用Foxpro设计动态安装程序
安装前,先建一个安装文件数据库(install.dbf),该库只需一个字段(wjm,字符型,12个字节),然后一条记录一个文件名,把需要安装的文件输入库中。安装时,程序便按库中记录把提到的文件逐一安装。屏幕显示“正在安装:”的即是wjm字段的内容;而安装比例是当前记录与总记录数之比(即:bfs=dqjl/zjls)。动态光带长度是以安装比例乘以光带总长(程序中是50)获得,并以显示该长度的空格来实现。即:
xs=(dqj1/zjls)*50
@ x,y say space(xs)
本程序如由批处理文件install.bat先拷贝到c:盘再运行,速度将更快,不过,这需在程序最后重新将它删除。下面是笔者为自己的“唐诗园”设计的安装程序。[程序清单]
set talk off
set start off
clea
set color to 7+/5,7+/5
define window win51 from 9,12 to 14,60 doub shad color 7+/5
acti window win51
@ 1,2,3,45 box
@ 0,5 say ' TSY安装选择'
DATAD=" "
@ 2,4 say ' 请输入源盘所在驱动器(A/B):'get DATAD pict "!"
read
@ 0,5 say ' TSY安装目标盘选择'
d=" "
@ 2,4 say ' 请输入目标盘(C/D/E/F/G):' get d pict "!"
READ
CLEAR WINDOWS
IF UPPE(D)="C" &&&判断目的盘,并建立和进入子目录。(E/F/G:已省略)
!C:
!MD TSY
!CD TSY
ENDIF
IF UPPE(D)="D"
!D:
!MD TSY
!CD TSY
ENDIF
DISK=DATAD
TD=d
define window win51 from 10, 10 to 16,70;
title '“唐诗园”系统安装程序'doub shad color 7+/5
acti window win51
@ 2,3,4,55 box
@ 1,5 say '正安装: 系统安装进行到:'
use &DISK:install &&&打开安装文件数据库:install.dbf
do while !eof() &&&进入循环,将库中文件一一拷贝
zjls=recc() &&&总记录数
dqj1=recn() &&&当前记录
bfs=dqj1/zjls
bfb1=round(bfs,2)*100 &&&计算安装比例
xs=ROUND((bfs*50),2) &&&计算显示光带的长度
wjml=upper(wjm)
@ 1,15 say wjml &&&显示正在安装的文件
copy file &DISK:&wjml to &td:&wjml
set colo to 6/7*
@ 3,5 say space(xs) &&&显示光带
set color to +7/5,5/5
@ 1,50 say ltrim(str(bfb1,3)+"%") &&显示安装比例
skip
enddo
@ 3,4 say "[唐诗园]系统安装完毕,任意键结束。 "
wait "
clear windows
! CD\
! DEL C:INSTALL.* &&&删除由批处理拷贝到c:盘的安装文件
quit