?? qbf.prg
字號:
*數據恢復子程序
*程序名: QBF
*開發日期: 95,8,10
*程序員: 莊帆
*變量說明
*QDQ:選擇驅動器
*ERR:接收錯誤信息
*DD:用于等待的偽變量
*TC:是否退出
*SCR1:存屏
*YYHQDQ:原隱含驅動器
*CPXYRL:磁盤剩余容量
*ESC1:READ時未修改按ESC鍵退出的READKEY值
*ESC2:READ時修改后按ESC鍵退出的READKEY值
*PS:磁盤盤數
*BBFILE:備份文件名
*JSQ:計數器
*XL:虛擬變量(無意義)
*YLJ:原路徑
*BFZWJ:被復制的軟盤文件(帶驅動器)
*FZWJ:復制到硬盤的文件名(帶驅動器及路徑)
PRIVATE ALL except p_*
do jrz with p_gzrrxm,'進入取備份數據'
TC=.F.
ERR=0
DIMENSION BBFILE(99)
JSQ=1
XL=' '
DO WHILE JSQ<100
IF JSQ<10
BBFILE(JSQ)='BB.00'+STR(JSQ,1)
ELSE
BBFILE(JSQ)='BB.0'+STR(JSQ,2)
ENDIF
JSQ=JSQ+1
ENDDO
#DEFINE ESC1=12
#DEFINE ESC2=268
=CAPSLOCK(.T.)
SL=1
qd=.t.
DO FORM BFPS NAME BFPS
if qd
CLOSE TABLE ALL
DO WHILE .T.
DO WHILE .T.
*確認和檢測軟盤
QDQ=1
do form xzqdq
ON ERROR ERR=ERROR()
DO WHILE .T.
DO CASE
CASE QDQ=1
SET DEFAULT TO A:
CASE QDQ=2
SET DEFAULT TO B:
OTHERWISE
TC=.T.
EXIT
ENDCASE
CPXYRL=DISKSPACE()
EXIT
ENDDO
*驅動器沒準備好的處理
IF ERR#0
QD=.T.
DHXX=IIF(QDQ=1,'A','B')+'軟盤沒有準備好或軟盤損壞, 請檢查!'+CHR(13)+;
'是否重試?'
DO FORM SFDHK
IF .NOT. QD
TC=.T.
EXIT
ENDIF
ERR=0
ELSE
EXIT
ENDIF
ENDDO
SET DEFAULT TO &p_cxlj
ON ERROR
IF TC
EXIT
ENDIF
*開始拷備軟盤
SET COLOR TO
JSQ=1
DO CASE
CASE QDQ=1
*檢測磁盤容量和盤正確以否
DO WHILE JSQ<=SL
SET DEFAULT TO A:
IF JSQ>1
dhxx='請放第'+STR(JSQ,2)+'張盤.'
do form &P_CXLJ.\dhk
ENDIF
IF (.NOT. FILE(BBFILE(JSQ)))
IF .NOT. WEXIST('CPC')
DEFINE WINDOW CPC FROM 8,25 TO 10,55 COLOR SCHEME 7 SHADOW
ENDIF
ACTIVATE WINDOW CPC
XL=' '
?? CHR(7)
DO WHILE (.NOT. FILE(BBFILE(JSQ)))
dhxx='磁盤放錯.'
do form dhk
ENDDO
DEACTIVATE WINDOW CPC
ENDIF
SET DEFAULT TO A:
BBF=BBFILE(JSQ)
dhxx1='正在拷備數據, 請稍候...'
do form &P_CXLJ.\xxts name xxts
BFZWJ='A:\'+BBF
FZWJ=P_CXLJ+'\'+BBF
COPY FILE &BFZWJ TO &FZWJ
JSQ=JSQ+1
xxts.release
ENDDO
CASE QDQ=2
*檢測磁盤容量和盤正確以否
DO WHILE JSQ<=SL
SET DEFAULT TO B:
IF JSQ>1
dhxx='請放第'+STR(JSQ,2)+'張盤.'
do form &P_CXLJ.\dhk
ENDIF
IF (.NOT. FILE(BBFILE(JSQ)))
IF .NOT. WEXIST('CPC')
DEFINE WINDOW CPC FROM 8,25 TO 10,55 COLOR SCHEME 7 SHADOW
ENDIF
ACTIVATE WINDOW CPC
XL=' '
?? CHR(7)
DO WHILE (.NOT. FILE(BBFILE(JSQ)))
dhxx='磁盤放錯.'
do form dhk
ENDDO
DEACTIVATE WINDOW CPC
ENDIF
SET DEFAULT TO B:
BBF=BBFILE(JSQ)
dhxx1='正在拷備數據, 請稍候...'
do form &P_CXLJ.\xxts name xxts
BFZWJ='B:\'+BBF
FZWJ=P_CXLJ+'\'+BBF
COPY FILE &BFZWJ TO &FZWJ
JSQ=JSQ+1
xxts.release
ENDDO
ENDCASE
*利用ARJ在硬盤上恢復數據
SET DEFAULT TO &P_CXLJ
DHXX1='正在處理數據,請稍候...'
DO FORM XXTS NAME XXTS
!ARJ E -Y -V1200 BB.001 *.DBF *.?DX *.MEM
XXTS.RELEASE
WAIT WINDOW '恢復完畢!' NOWAIT
EXIT
ENDDO
endif
#UNDEFINE ESC1
#UNDEFINE ESC2
SET DEFAULT TO &P_CXLJ
do jrz with p_gzrrxm,'退出取備份數據'
RETURN
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -