VB文件分割与合并

VB文件分割与合并,第1张

概述VB文件分割与合并

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。

内存溢出小编现在分享给大家,也给大家做个参考。

'VB 实现大文件的分割与合并,引用 ADODB.Stream 提供一个过程:'要引用 Microsoft ActiveX Data Objects 2.5 libary'或 Microsoft ActiveX Data Objects 2.6 libaryPublic Sub StreamSplit(Sourcefile As String,Destinationfile As String,ChunkSize As Long,Optional BufferSize As Long = 64# * 1024#,Optional ShowFinishMessage As Boolean)'ChunkSize 为 BufferSize 的倍数Dim adoStreamS As New ADODB.StreamadoStreamS.Type = adTypeBinaryadoStreamS.OpenadoStreamS.LoadFromfile SourcefileDim lfileSize As LonglfileSize = adoStreamS.SizeDim i As LongDim adoStreamT As New ADODB.StreamadoStreamT.Type = adTypeBinarydo while lfileSize >= ChunkSize * BufferSize   adoStreamT.Open   adoStreamT.Write adoStreamS.Read(ChunkSize * BufferSize)   adoStreamT.Savetofile Destinationfile & "." & Format(i,"000"),IIf(Len(Trim(Dir(Destinationfile & "." & Format(i,"000")))) > 0,adSaveCreateOverWrite,adSaveCreateNotExist)   adoStreamT.Close   lfileSize = lfileSize - ChunkSize * BufferSize   i = i + 1LoopIf lfileSize > 0 Then   adoStreamT.Open   adoStreamT.Write adoStreamS.Read(lfileSize)   adoStreamT.Savetofile Destinationfile & "." & Format(i,adSaveCreateNotExist)End IfIf ShowFinishMessage Then   MsgBox "Finished!"End IfEnd SubPublic Sub StreamRestore(Sourcefile As String,Chunks As Long,Optional ShowFinishMessage As Boolean)Dim lfileSize As LongDim adoStreamT As New ADODB.StreamadoStreamT.Type = adTypeBinaryadoStreamT.OpenDim adoStreamS As New ADODB.StreamadoStreamS.Type = adTypeBinaryDim i As LongFor i = 0 To Chunks - 1 'Chunks 块数    adoStreamS.Open    adoStreamS.LoadFromfile Sourcefile & "." & Format(i,"000")    adoStreamT.Write adoStreamS.Read    adoStreamS.CloseNext iadoStreamT.Savetofile Destinationfile,IIf(Len(Trim(Dir(Destinationfile))) > 0,adSaveCreateNotExist)If ShowFinishMessage Then   MsgBox "Finished!"End IfEnd Sub'VB 实现大文件的分割与恢复,采用读写二进制数据的传统经典代码:Public Sub fileSplit(Sourcefile As String,Optional ShowFinishMessage As Boolean)'ChunkSize 为 BufferSize 的倍数Dim filebuffer() As ByteDim fileNumberS As LongDim fileNumberT As LongfileNumberS = FreefileOpen Sourcefile For Binary Access Read As #fileNumberSDim lfileLen As LonglfileLen = fileLen(Sourcefile)fileNumberT = FreefileDim i As LongDim j As LongReDim filebuffer(1 To (BufferSize)) As ByteOpen Destinationfile & "." & Format(i,"000") For Binary Access Write As #fileNumberTdo while lfileLen >= BufferSize   Get #fileNumberS,filebuffer   If i = ChunkSize Then      i = 0      j = j + 1      Close #fileNumberT      fileNumberT = Freefile      Open Destinationfile & "." & Format(j,"000") For Binary Access Write As #fileNumberT   End If   i = i + 1   Put #fileNumberT,filebuffer   lfileLen = lfileLen - BufferSizeLoopIf lfileLen > 0 Then   ReDim filebuffer(1 To lfileLen) As Byte   Get #fileNumberS,filebuffer   Put #fileNumberT,filebufferEnd IfClose #fileNumberTIf ShowFinishMessage Then   MsgBox "Finished!"End IfEnd SubPublic Sub fileRestore(Sourcefile As String,Optional ShowFinishMessage As Boolean)Dim filebuffer() As ByteDim fileNumberS As LongDim fileNumberT As LongDim i As LongDim lfileLen As LongfileNumberT = FreefileOpen Destinationfile For Binary Access Write As #fileNumberTFor i = 0 To Chunks - 1    fileNumberS = Freefile    Open Sourcefile & "." & Format(i,"000") For Binary Access Read As #fileNumberS    lfileLen = fileLen(Sourcefile & "." & Format(i,"000"))    ReDim filebuffer(1 To BufferSize) As Byte    do while lfileLen >= BufferSize       Get #fileNumberS,filebuffer       Put #fileNumberT,filebuffer       lfileLen = lfileLen - BufferSize    Loop    If lfileLen > 0 Then       ReDim filebuffer(1 To lfileLen) As Byte       Get #fileNumberS,filebuffer    End If    Close #fileNumberSNext iClose #fileNumberTIf ShowFinishMessage Then   MsgBox "Finished!"End IfEnd Sub

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的VB文件分割与合并全部内容,希望文章能够帮你解决VB文件分割与合并所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1274847.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存