当前位置: 查字典论文网 >> 用VB实现对库文件的分割备份

用VB实现对库文件的分割备份

格式:DOC 上传日期:2023-03-12 01:17:06
用VB实现对库文件的分割备份
时间:2023-03-12 01:17:06     小编:

用VB实现对库文件的分割备份 用VB实现对库文件的分割备份 信息技术论文 更新:2006-4-8 阅读: 用VB实现对库文件的分割备份

用VB实现对库文件的分割备份

殷鹏

在设计信息管理程序时,数据库的软盘备份与恢复是我们经常遇到的一个问题。如果仅仅使用文件复制指令,那么在文件大小超过软盘容量时,就会出现错误。下面我来介绍一种用VB实现的对文件进行分割备份的方法。假设在E:CLASS目录下有一个名为CLASSES.MDB的文件,3.8M,我们现在要按照每个1.4M,把它分割成3个文件进行备份,然后,再恢复成CLASSES1.MDB文件。启动VB,新建一个工程,添加一个模块,将下列代码填入模块的声明中:

Type FileSection

Bytes() As Byte

FileLen As Long

End Type

Type SectionedFile

Files() As FileSection

NumberOfFiles As Long

End Type

Type FileInfo

OrigProjSize As Long

OrigFileName As String

FileCount As Integer

FileStartNum As Long

End Type

然后,在Form1中添加两个按钮,分别命名为cmdBackup,Caption:"备份";cmdRestore,Caption:"恢复"。

分别双击按钮,填入以下代码:

Private Sub cmdBackup_Click()

Dim SplitFileName As String '待备份的文件名

Dim Split As Long '备份文件的大小

Dim SaveName As String '备份文件名

Dim fNum As Integer '可用的文件号

Dim NumFil As Long '备份文件的数目

Dim FilesLen As Long '待备份文件的大小

Dim CurrentFile As SectionedFile '参数结构

SplitFileName = "e:classclasses.mdb"

Split

= 1400000

FilesLen = FileLen(SplitFileName)

fNum = FreeFile

Open SplitFileName For Binary As fNum '计算备份参数

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 '相关数据写入临时文件

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 '恢复后文件名

Dim fNum As Integer '可用的文件号

Dim tmpFileName As String '临时文件名

Dim File As SectionedFile '参数结构

Dim FileInfo As FileInfo '临时文件的结构

tmpFileName = "e:classclasses.mdb.tpl"

OutName = "e:classclasses1.mdb"

fNum = FreeFile

全文阅读已结束,如果需要下载本文请点击

下载此文档

相关推荐 更多