Dim 总字节 As Long
Dim 字节缓存 As Long
Dim 开始 As Long
Dim 结束 As Long
Dim 文件个数 As Integer
Dim 文件编号 As Integer
Private Sub 数据还原()
List1.Clear
总字节 = 0
字节缓存 = 0
开始 = 0
结束 = 0
文件个数 = 0
文件编号 = 0
End Sub
Private Sub 批量拆分_Click() '批量拆分
Call 数据还原
'-------------------------------------------------------获取文件大小
Const sFile As String = "C:\1.exe"
总字节 = Val(FileLen(sFile))
字节缓存 = 总字节
'-------------------------------------------------------获取文件大小
'-------------------------------------------------------计算文件分割个数
1:
If 字节缓存 > 28200 Then '分割大小为51200个字节(相当于30KB的大小)
开始 = 结束
结束 = 开始 + 28200
字节缓存 = 字节缓存 - 28200
List1.AddItem "[" & 开始 + 1 & "][" & 结束 & "]"
If 字节缓存 > 28200 Then GoTo 1:
End If
List1.AddItem "[" & 结束 + 1 & "][" & 总字节 & "]"
'-------------------------------------------------------计算文件分割个数
'-------------------------------------------------------分割过程
For 文件个数 = 0 To List1.ListCount - 1
开始 = Val(Split(Split(List1.List(文件个数), "[")(1), "][")(0))
结束 = Val(Split(Split(List1.List(文件个数), "][")(1), "]")(0))
Dim abc() As Byte '声名数组
Open "C:\分割后的文件\" & 文件个数 & ".exe" For Binary As #1
Open "C:\1.exe" For Binary As #2
ReDim abc(开始 To 结束) '定义数组范围
Get #2, 开始, abc
Put #1, , abc
Close #2
Close #1
Next 文件个数
'-------------------------------------------------------分割过程
End Sub
Private Sub 批量合并_Click() '批量合并
On Error Resume Next
Dim abc() As Byte '声名数组
File1.Path = "C:\分割后的文件\" '利用FileListBox控件为取文件总数作准备
For 文件编号 = 0 To File1.ListCount
Open "C:\新文件.exe" For Binary As #1 '指定合并后的路径
Open "C:\新文件.exe" For Binary As #2 '以二进制打开文件,将二进制保存到#2
Open "C:\" & 文件编号 & ".exe" For Binary As #3 '以二进制打开文件,将二进制保存到#3
ReDim abc(1 To LOF(2)) '定义数组范围,LOF(2)为#2文件的大小
Get #2, , abc '将#2保存到数组abc中
Put #1, , abc '将数组abc保存到"c:\c.exe"
ReDim abc(1 To LOF(3)) '定义数组范围,LOF(3)为#3文件的大小
Get #3, , abc '将#3保存到数组abc中
Put #1, , abc '将数组abc叠加保存到"c:\c.exe"
Close #3
Close #2
Close #1
DoEvents
Next 文件编号
End Sub