




已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
用VB實(shí)現(xiàn)對(duì)庫(kù)文件的分割備份在設(shè)計(jì)信息管理程序時(shí),數(shù)據(jù)庫(kù)的軟盤備份與恢復(fù)是我們經(jīng)常遇到的一個(gè)問(wèn)題。如果僅僅使用文件復(fù)制指令,那么在文件大小超過(guò)軟盤容量時(shí),就會(huì)出現(xiàn)錯(cuò)誤。下面我來(lái)介紹一種用VB實(shí)現(xiàn)的對(duì)文件進(jìn)行分割備份的方法。假設(shè)在E:CLASS目錄下有一個(gè)名為CLASSES.MDB的文件,3.8M,我們現(xiàn)在要按照每個(gè)1.4M,把它分割成3個(gè)文件進(jìn)行備份,然后,再恢復(fù)成CLASSES1.MDB文件。啟動(dòng)VB,新建一個(gè)工程,添加一個(gè)模塊,將下列代碼填入模塊的聲明中: Type FileSection Bytes() As Byte FileLen As LongEnd TypeType SectionedFile Files() As FileSection NumberOfFiles As LongEnd TypeType FileInfo OrigProjSize As Long OrigFileName As String FileCount As Integer FileStartNum As LongEnd Type 然后,在Form1中添加兩個(gè)按鈕,分別命名為cmdBackup,Caption:備份;cmdRestore,Caption:恢復(fù)。 分別雙擊按鈕,填入以下代碼:Private Sub cmdBackup_Click() Dim SplitFileName As String 待備份的文件名 Dim Split As Long 備份文件的大小 Dim SaveName As String 備份文件名 Dim fNum As Integer 可用的文件號(hào) Dim NumFil As Long 備份文件的數(shù)目 Dim FilesLen As Long 待備份文件的大小 Dim CurrentFile As SectionedFile 參數(shù)結(jié)構(gòu) SplitFileName = e:classclasses.mdb Split = 1400000 FilesLen = FileLen(SplitFileName) fNum = FreeFile Open SplitFileName For Binary As fNum 計(jì)算備份參數(shù) NumFil = CInt(FilesLen / Split) ReDim CurrentFile.Files(1 To NumFil) For i = 1 To NumFil ReDim CurrentFile.Files(i).Bytes(1 To Split) CurrentFile.Files(i).FileLen = UBound(CurrentFile.Files(i).Bytes) Next For i = 1 To NumFil Get #fNum, , CurrentFile.Files(i).Bytes Next ReDim CurrentFile.Files(NumFil).Bytes(1 To FilesLen - (NumFil - 1) * Split) CurrentFile.NumberOfFiles = NumFil Get #fNum, , CurrentFile.Files(NumFil).Bytes CurrentFile.Files(NumFil).FileLen = UBound(CurrentFile.Files(NumFil).Bytes)Close #fNum For i = 1 To CurrentFile.NumberOfFiles 分割備份 SaveName = SplitFileName & . & Format(BeginningNumber - 1 + i, 00#) fNum = FreeFile Open SaveName For Binary As fNum Put #fNum, 1, CurrentFile.Files(i) Close #fNum Next Dim FileInfoFile As FileInfo 相關(guān)數(shù)據(jù)寫入臨時(shí)文件 FileInfoFile.FileCount = NumFil FileInfoFile.OrigFileName = SplitFileName FileInfoFile.OrigProjSize = FileLen(SplitFileName) FileInfoFile.FileStartNum = BeginningNumber SaveName = SplitFileName & .tpl fNum = FreeFile Open SaveName For Binary As #fNum Put #fNum, , FileInfoFile Close #fNum End Sub Private Sub cmdRestore_Click() Dim OutName As String 恢復(fù)后文件名 Dim fNum As Integer 可用的文件號(hào) Dim tmpFileName As String 臨時(shí)文件名 Dim File As SectionedFile 參數(shù)結(jié)構(gòu) Dim FileInfo As FileInfo 臨時(shí)文件的結(jié)構(gòu) tmpFileName = e:classclasses.mdb.tpl OutName = e:classclasses1.mdb fNum = FreeFile Open tmpFileName For Binary As #fNum 取得相關(guān)數(shù)據(jù) Get #fNum, , FileInfo Close #fNum ReDim File.Files(1 To FileInfo.FileCount) 打開(kāi)備份文件 For i = 1 To FileInfo.FileCount OpenName = FileInfo.OrigFileName & . & Format(FileInfo.FileStartNum - 1 + i), 00#) fNum = FreeFile Open OpenName For Binary As #fNum Get #fNum, 1, File.Files(i) Close #fNum Next fNum = FreeFile Open OutName For Binary As #fNum 恢復(fù) For i = 1 To FileInfo.FileCount Put #fNum, , File.Files(i).Bytes Next Close #fNum End Sub 運(yùn)行該例程,點(diǎn)擊“備份”按鈕,用資源管理器看看E:CLASS目錄,可以看到分割后的三個(gè)文件:CLASSES.MDB.000、CLASSES.MDB.001、CLASSES.MDB.002,大小分別為:1.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電塔基礎(chǔ)冬季施工方案模板
- 腎性貧血護(hù)理
- 公園景觀工程施工組織設(shè)計(jì)方案1
- 休閑旅游項(xiàng)目可行性研究報(bào)告
- 建筑施工工人入場(chǎng)安全教育
- 2025年內(nèi)蒙古貨運(yùn)從業(yè)資格證500道題目及答案大全
- 智慧城市背景下的安保創(chuàng)新計(jì)劃
- 財(cái)務(wù)風(fēng)險(xiǎn)管理工具研究計(jì)劃
- 構(gòu)建企業(yè)文化的月度任務(wù)計(jì)劃
- 利用節(jié)日主題開(kāi)展品德教育計(jì)劃
- 預(yù)防接種人員崗位培訓(xùn)習(xí)題(Ⅰ類培訓(xùn)練習(xí)題庫(kù)共385題)
- 現(xiàn)場(chǎng)經(jīng)濟(jì)簽證單范本
- 固定義齒工藝流程圖
- 《網(wǎng)店運(yùn)營(yíng)與管理》課件(完整版)
- (高職)員工培訓(xùn)與開(kāi)發(fā)(第四版)完整版教學(xué)課件全套電子教案
- 帶電子手表去學(xué)校的檢討
- 相親相愛(ài) 簡(jiǎn)譜
- 第四章工具鋼
- 2022年春新冀人版科學(xué)五年級(jí)下冊(cè)全冊(cè)課件
- 服裝購(gòu)銷合同最新版
- 中層干部輪崗交流動(dòng)員會(huì)上的講話
評(píng)論
0/150
提交評(píng)論