一些數據庫文件(如Access文件)在遠程傳輸過程中可能由於文件比較大而影響傳遞效果。如果進行壓縮以後再傳遞,會減少傳遞時間,避免意外的發生,同時也保證了傳遞效果。我們在壓縮文件時,最常用的壓縮工具為WinRar和Winzip,筆者在VB編程過程中利用WinRar工具來壓縮數據庫文件,並完成遠程傳輸,十分方便,在此向大家介紹一下。用WinZip的方法類似。
一、Shell函數
Shell函數是VB中的內部函數,它負責執行一個可執行文件,返回一個Variant(Double),如果成功的話,代表這個程序的進程ID,若不成功,則會返回0。
Shell的語法:Shell(PathName[,WindowStyle])。
PathName為必需參數。類型為String,它指出了要執行的程序名,以及任何需要的參數或命令行變量,也可以包括路徑名。
WindowStyle為可選參數。Integer類型,指定在程序運行時窗口的樣式。WindowStyle有以下這些值。
常量值描述
VbHide0窗口被隱藏,且焦點會移到隱式窗口。
VbNormalFocus1窗口具有焦點,且會還原到它原來的大小和位置。
VbMinimizedFocus2窗口會以一個具有焦點的圖標來顯示(缺省值)。
VbMaximizedFocus3窗口是一個具有焦點的最大化窗口。
VbNormalNoFocus4窗口會被還原到最近使用的大小和位置,而當前活動的窗口仍然保持活動。
VbMinimizedNoFocus6窗口會以一個圖標來顯示,而當前活動的窗口仍然保持活動。
二、關於WinRar的用法
主要介紹以下如何在WinRar中用命令行來壓縮和解壓縮文件。
壓縮:WINRARA[-switches][Files][@Filelists]
例如你想把try.mdb壓縮到C盤下,可以WINRARAC:try.rarC:try.mdb
解壓縮:如果帶目錄解壓縮
WINRARX[-switches][Files][@Filelists][destionationfolder]
如果在當前目錄解壓縮,即解壓縮時不寫目錄名
WINRARE[-switches][Files][@Filelists][destionationfolder]
例如你想把try.rar解壓縮到C盤下,可以WINRARXC:try.rarC:try.mdb
三、一個例子
在VB中新建一個工程,在Form1中添加兩個按鈕Command1、Command2和Command3,把他們的Caption屬性分別設為"壓縮文件"、"解壓縮文件"和"傳遞文件"。按Command1時把文件try.mdb壓縮成try.rar。
PrivateSubCommand1_Click()
DimRarexeAsString‘WINRAR執行文件的位置
DimSourceAsString‘壓縮前的原始文件
DimTargetAsString‘壓縮後的目標文件
DimFileStringasString‘Shell指令中的字符串
DimResultAsLong
Rarexe="C:programfileswinrarwinrar"
Source="C:try.mdb"
Target="C:try.rar"
FileString=rarexe&"a"&Target&""&Source
Result=Shell(FileString,vbHide)
EndSub
解壓的過程類似,按Command2可以把try.rar解壓生成try.mdb。在執行了上面的壓縮過程後,可以刪除文件try.mdb,來解壓縮重新生成try.mdb。
PrivateSubCommand2_Click()
DimRarexeAsString‘WINRAR執行文件的位置
DimSourceAsString‘解壓縮前的原始文件
DimTargetAsString‘解壓縮後的目標文件
DimFileStringasString‘Shell指令中的字符串
DimResultAsLong
Rarexe="C:programfileswinrarwinrar"
Source="C:try.rar"
Target="C:try.mdb"
FileString=rarexe&"X"&Source&""&Target
Result=Shell(FileString,vbHide)
EndSub
文件從一台計算機傳輸到另一台計算機前,應知道另一台計算機的名字,然後用FileCopy語句就可以了。假設要把壓縮後try.rar傳遞到計算機名為"other"的共享目錄"want"下。
PrivateSubCommand3_Click()
DimSourceFile,DestinationFile
SourceFile="C:try.rar"‘指定源文件名。
DestinationFile="otherwanttry.rar"‘指定目的文件名。
FileCopySourceFile,DestinationFile‘將源文件的內容復制到目的文件中。
EndSub
怎麼樣,十分簡單吧?->