2016-11-8
18:22

root
root

[程序代码]二进制操作(把某个文件n等分)

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 = "F:\巨浪网络\二进制系列\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 "F:\巨浪网络\二进制系列\分割后的文件\" & 文件个数 & ".exe" For Binary As #1
        Open "F:\巨浪网络\二进制系列\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 = "F:\巨浪网络\二进制系列\分割后的文件\" '利用FileListBox控件为取文件总数作准备
    
    For 文件编号 = 0 To File1.ListCount
        
        Open "F:\巨浪网络\二进制系列\合并后的文件\新文件.exe" For Binary As #1  '指定合并后的路径
        Open "F:\巨浪网络\二进制系列\合并后的文件\新文件.exe" For Binary As #2  '以二进制打开文件,将二进制保存到#2
        Open "F:\巨浪网络\二进制系列\分割后的文件\" & 文件编号 & ".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
文章如需转载请注明:转载自: 紫灵幽梦
« 上一篇 下一篇 »

相关文章:

vb读取access并且显示  (2017-5-11 9:18:27)

VB 获取CPU温度示例  (2017-5-8 10:35:11)

VB程序逆向反汇编常见的函数   (2017-5-8 10:32:0)

VB内嵌汇编的模块示例  (2017-5-8 10:24:4)

内存数据的读写(PC)   (2017-3-1 17:51:40)

用VB制作外挂   (2017-3-1 16:16:53)

发表留言: