⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qbf.prg

📁 退货退厂增添输入日期时提示不是本月将不显示。 供货商名称修改后
💻 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 + -