
winrar是EugeneRoshal于1993年推出的一款压缩包管理器。winrar支持可执行文件、对象链接库、大型文本文件等,并具有历史记录、收藏夹、恢复记录、恢复卷、分卷压缩、管理密码等功能。
WinRAR是一个强大的压缩文件管理工具。它能备份你的数据,减少你的E-mail附件的大小,解压缩从Internet上下载的RAR、ZIP和其他格式的压缩文件,并能创建RAR和ZIP格式的压缩文件。WinRAR是流行的压缩工具,界面友好,使用方便,在压缩率和速[2]度方面都有很好的表现。其压缩率比高,3.x采用了更先进的压缩算法,是压缩率较大、压缩速度较快的格式之一。WinRAR压缩软件是Windows版本的RAR压缩文件管理器,一个允许你创建、管理和控制压缩文件的强大工具。存在一系列的RAR版本,应用于数个 *** 作系统环境:Windows、Linux、FreeBSD、DOS、OS/2、MacOSX。
'以下代码非原创 但可行 觉得拷贝无聊者请忽略'代码定义了两个子程序一个解压一个压缩
.版本 2
.子程序 压缩_WinRAR_压缩, 文本型, 公开, 本命令需要安装WinRAR
.参数 被压缩的文件, 文本型, 数组, 文件和文件夹都可以
.参数 压缩到文件, 文本型, , 全路径和rar\zip文件名
.参数 WinRAR地址, 文本型, 可空, 如果注册表内没有WinRAR的信息。但是安装了的。就需要写 例:C:\Program Files\WinRAR\WinRAR.exe
.局部变量 易团俊, 整数型
.局部变量 被压缩信息, 文本型
易团俊 = 0
被压缩信息 = “”
.如果真 (是否为空 (WinRAR地址))
WinRAR地址 = 取文本注册项 (#本地机器, “SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe\”, )
.如果真结束
.如果真 (WinRAR地址 = “”)
返回 (“找不到WinRAR目录”)
.如果真结束
.计次循环首 (取数组成员数 (被压缩的文件), 易团俊)
被压缩信息 = 被压缩信息 + “ ” + 被压缩的文件 [易团俊]
.计次循环尾 ()
运行 (WinRAR地址 + “ a -ep1 -scul -r0 -iext ” + 压缩到文件 + 被压缩信息, 真, )
返回 (“”)
.子程序 压缩_WinRAR_解压, 文本型, 公开, 本命令需要安装WinRAR
.参数 压缩文件, 文本型, , 全路径和rar\zip文件名
.参数 解压到文件夹, 文本型, , 文件夹全路径
.参数 WinRAR地址, 文本型, 可空, 如果注册表内没有WinRAR的信息。但是安装了的。就需要写 例:C:\Program Files\WinRAR\WinRAR.exe
.如果真 (是否为空 (WinRAR地址))
WinRAR地址 = 取文本注册项 (#本地机器, “SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe\”, )
.如果真结束
.如果真 (WinRAR地址 = “”)
返回 (“找不到WinRAR目录”)
.如果真结束
运行 (WinRAR地址 + “ x -iext -ow -er ” + 压缩文件 + “ ” + 解压到文件夹, 真, )
返回 (“”)
请参考VFP中压缩工具WinRAR的调用
-------------------------------------------
压缩:
DELETE FILE bak.jhz
RUN /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,出现运行窗口时,用鼠标右键单击窗口或屏幕底部对应任务栏,选择属性按钮,进入配置页面。另一种方法是:用“资源管理器”找到对应的PIF文件,单击鼠标右键,选择属性按钮,进入配置页面进行设置。由于配置内容较多,在此不能一一详述,仅就运行本程序可能涉及的几项参数做一介绍。
● 程序:
1.第一行为运行窗口标示,可设定为:正在进行数据文件压缩……
2.命令行:Command.com(DOS命令处理程序,不需改动)
3.工作目录:C:\vfp50\data(备份目录)
4.批处理文件:D_backup.bat
5.快捷键:
6.运行:小窗口
7.高级属性设置:选定“建议使用MS—DOS方式”复选框,此项配置的功能是:在运行此程序时,Windows检测该程序是否要在MS-DOS方式下运行。如果是这样,Windows将运行向导程序来安装自定义图标以便运行此程序。否则,如果程序需要在MS-DOS方式下运行,但是未复选此项,该程序可能无法正常运行。
8.更改图标:可以为此运行窗口任意选定图标。
9.选定“退出时关闭”复选框,此项配置的功能是:指定程序执行完后是否关团MS-DOS窗口。如果未复选 此框,MS-DOS窗口将保持打开状态。
● 屏幕:
窗口:选定“在启动时恢复设置”复选框,此项配置的功能是:退出此程序时保存窗口设置,包括窗口的大小、位置和字体。否则,运行窗口不能被任意托放,影响整体界面布局。
● 杂项:
鼠标:“独占方式”复选框,此项配置的功能是:单击此处可以使该程序独占鼠标。在该程序运行期间,鼠标指针被隐藏,鼠标功能失效,退出后,鼠标功能自动恢复正常。
与此类似,Arj_restore.PIF的配置方法亦可如法炮制,只需将“程序”中的“批处理文件”改为:D_restore.bat即可。
PIF运行窗口的位置、大小,可以手工托放、调整,如果想隐藏该窗口,可以将它缩至最小,再拖至屏幕右下角。
上述配置设定完成以后,按“确定”按钮退出配置页面。此时,ARJ运行环境定制完成。
二、Foxpro程序调用
1.提供软盘备份、硬盘备份(备份到硬盘C:\backup目录下)两种方式。
2.软盘备份前,先在硬盘调用ARJ压缩分卷,并创建一个文本文件(date_backup)用于记录备份时间、备份文件数量、所需软盘数量,以便用户据此判断是否压缩成功并进行软盘备份;恢复时,也首先打开软盘上的该文本,显示备份时间、备份文件数量、所需软盘数量,由用户据此确定是否进行软盘恢复。备份或恢复时,如果中途某张盘出现故障,或顺序错误,均允许“重试?”。
3.软盘恢复时,检查每张盘的备份时间是否与上张盘一致,并检查其装入顺序是否正确。确保备份数据的时效性、完整性。
4.软盘恢复时,先在非工作目录下进行,全部工作完成并确认无误后,再移入工作目录,这样,可以避免数据库的不完全覆盖而造成的损坏。
5.出错时激活故障处理例程err_proc,置出错标志,退出处理。
---------------------------------------------------------------命令S为自释放格式如:
RUN /N7 WinRAR.exe S -ibck -r -k -o+ -y bak.EXE dbf\*.*
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)