www.pudn.com > 备份及取备份.zip > 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:复制到硬盘的文件名(带驱动器及路径) 
 
*修改记录 
*1998.9.14 庄稼 
*1999.5.3  庄稼 
 
DO WHILE .T. 
QX=1 
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 
 
qd=MESSAGEBOX('请插入最后一张备份盘。',65,'') 
if qd=1 
  CLOSE TABLE ALL 
  DO WHILE .T. 
    ON ERROR ERR=ERROR() 
    restore from a:\ps additive 
 
*驱动器没准备好的处理 
    IF ERR#0 
      QD=messagebox('软盘没有准备好或软盘损坏, 请检查!是否重试?',33,'') 
      IF qd=2 
        TC=.T. 
        EXIT 
      ENDIF 
      ERR=0 
    ELSE 
      EXIT 
    ENDIF 
  ENDDO 
  ON ERROR 
  IF TC 
    EXIT 
  ENDIF 
 
 
*开始拷备软盘 
  SET COLOR TO 
  JSQ=1 
  SL=PS-1 
*检测磁盘容量和盘正确以否 
  DO WHILE JSQ<=SL 
    =messagebox('请放第'+STR(JSQ,2)+'张盘.',64,'') 
    BBF=BBFILE(JSQ) 
    IF .NOT. FILE('A:\'+BBF) 
      DO WHILE .NOT. FILE('A:\'+BBF) 
        qx=messagebox('磁盘放错,重试?',49,'') 
        if qx=2 
          exit 
        endif 
      ENDDO 
    ENDIF 
    if qx=2 
      exit 
    endif 
    BBF=BBFILE(JSQ) 
    wait window '正在复制数据, 请稍候...' nowait 
    BFZWJ='A:\'+BBF 
    FZWJ=BBF 
    COPY FILE &BFZWJ TO &FZWJ 
    JSQ=JSQ+1 
  ENDDO 
  IF QX=2 
  EXIT 
  ENDIF 
*利用ARJ在硬盘上恢复数据 
  wait window '数据复制完毕,下面开始处理数据,请稍候...' nowait 
  RUN ARJ E -Y -V1440 BB.001 
  DELETE FILE BB.0?? 
 
  WAIT WINDOW '恢复完毕!' NOWAIT 
ENDIF 
EXIT 
ENDDO