发布网友 发布时间:2024-10-03 06:38
共1个回答
热心网友 时间:2024-11-24 11:02
请参考VFP中压缩工具WinRAR的调用-------------------------------------------压缩:DELETE FILE bak.jhzRUN /N7 WinRAR.exe a -ibck -r -k -o+ -y -hp123 -p123 bak.jhz dbf\*.*或RUN /N7 WinRAR.exe a -ibck -r -o+ -y -hp123 -p123 bak.jhz dbf\*.*解压:RUN /N7 WinRAR.exe x -ibck -r -k -o+ -y -hp123 -p123 bak.jhz dbf\*.*或RUN /N7 WinRAR.exe x -ibck -r -o+ -y -hp123 -p123 bak.jhz dbf\*.*参数说明:a:添加到档案文件中x:从档案文件中全路径释放文件-ibck:后台运行WinRAR-r:连同子文件夹操作-k:锁定档案文件-o+:覆盖已经存在的文件-y:对所有询问均回应为“是”-hp123:加密文件数据和文件头,密码为123-p123:设置密码为123,此密码上一个密码可以不一样bak.jhz:压缩后的文件名或要解压的文件(.jhz为自定义扩展名)dbf\*.*:要压缩的文件或要解压到的文件位置更详细参数请参考:WinRAR中帮助文件-------------------------------------------------- 在实际应用中,如果Foxpro管理的数据库,表文件较多,占用空间较大,并且其长度又具有不确定性或不定增长性(如:明细帐),这样,一个表的字节数就可能超过一张软盘的容量,而Foxpro的拷贝命令又不能支持自动分卷连续备份,因此,这就给数据库的软盘备份与恢复带来一定的困难。如果能在Foxpro环境下,运用一种压缩算法,编写一个高效实用的压缩工具,那当然是最好的解决方案,遗憾的是笔者作过尝试却未获成功,在此,笔者采取了调用基于DOS的压缩工具软件ARJ.exe,实现了压缩分卷备份和分卷解压缩恢复的功能,现将具体实现方法概述如下,以供探讨。一、定制ARJ运行环境 在Foxpro for Windows环境中,提供了运行外部命令或程序的命令:Run。如果Run中指定的程序没有扩展名,Foxpro for Windows首先查找指定名称的程序信息文件(后缀为PIF)。PIF允许在Windows下运行非Windows程序,并且可以指定其运行参数:程序是在窗口中运行还是全屏幕运行以及内存分配等。如果找到了相应的PIF,则使用其中指定的参数运行PIF中的程序;当找不到PIF时,就使用安装在Foxpro for Windows目录中的PIF文件FOXRUN.PIF。FOXRUN.PIF对程序在Windows中运行做了一些设置。因此,我们可以依据该文件,定制自己的PIF文件,不妨命名为:Arj_backup.pif。假设工作目录为:C:\VfFP50\DATA,备分批处理文件为:d_backup.bat,恢复批处理文件为:d_restore.bat ,ARJ.EXE也已拷贝至该目录下。 ● copy file c:\vfp50\foxrun.pif to arj_backup.pif ● modi file d_backup.bat (使其包含以下语句) cd c:\v fp50\data arjva -va -a -y bak_data exit(退出批处理操作) ●modi file d_restore.bat (使其包含以下语句) cd c:\vfp50\data arj x -va -a -y bak_data exit ARJ参数说明: -va:使用A驱软盘上所有自由空间执行压缩任务。可以将a改为1440或1200,则以1.44M或1.22M大小分割备份文件。 -a:对所有属性的文件都能进行处理,包括隐含文件。 -y:对所有程序提问,都默认按肯定回答,直接执行。 -x:解压释放压缩文件。 Arj_backup.PIF 配置方法说明: 修改PIF配置的进入方法有两种,一种方法是:当激活Arj_backup,出现运行窗口时,用鼠标右键单击窗口或屏幕底部对应任