查看: 25  |  回复: 0
  VB6 代码管家-二进制操作(把某个文件n等分)
楼主
发表于 2024年12月8日 21:41
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


您需要登录后才可以回帖 登录 | 立即注册
【本版规则】请勿发表违反国家法律的内容,否则会被冻结账号和删贴。
用户名: 立即注册
密码:
2020-2024 MaNongKu.com