VB Code:
Public Sub JoinFiles(TargetFile As String, ParamArray Files() As Variant) Dim iFFTarget As Integer, iFFSource As Integer, lFiles As Long, sRead As String Dim sFileSizes As String, sFileData As String, sHeader As String iFFTarget = FreeFile ' Clean/create the file: Open TargetFile For Output As iFFTarget Close iFFTarget iFFTarget = FreeFile Open TargetFile For Binary As iFFTarget For lFiles = LBound(Files) To UBound(Files) iFFSource = FreeFile Open Files(lFiles) For Binary As iFFSource sRead = String(LOF(iFFSource), " ") sFileSizes = sFileSizes & LOF(iFFSource) & "|" & Files(lFiles) & "|" Get #iFFSource, , sRead Close iFFSource sFileData = sFileData & sRead Next sHeader = Len(sFileSizes) Put #iFFTarget, , sHeader & "</HEAD>" Put #iFFTarget, , sFileSizes Put #iFFTarget, , sFileData Close iFFTarget End Sub Public Sub SplitFiles(FusedFile As String) Dim iFFFused As Integer, iFFSplit As Integer, sRead As String, lFiles As Long, lHeadSize As Long Dim sFileSizes As String, sFiles() As String, sWrite As String, sSeek As String iFFFused = FreeFile Open FusedFile For Binary As iFFFused sRead = String(LOF(iFFFused), " ") Get #iFFFused, , sRead lHeadSize = Split(sRead, "</HEAD>")(0) sSeek = Trim(Str(lHeadSize)) & "</HEAD>" sFileSizes = String(lHeadSize, " ") Seek #iFFFused, 1 Get #iFFFused, , sSeek Get #iFFFused, , sFileSizes sFiles = Split(Left(sFileSizes, Len(sFileSizes) - 1), "|") For lFiles = LBound(sFiles) To UBound(sFiles) Step 2 iFFSplit = FreeFile sWrite = String(sFiles(lFiles), " ") Get #iFFFused, , sWrite Open sFiles(lFiles + 1) For Binary As iFFSplit Put #iFFSplit, , sWrite Close iFFSplit Next Close iFFFused End Sub Public Function RoundUp(Number As Double) As Long Dim lNumber As Long lNumber = Number If lNumber <> Number Then RoundUp = lNumber + 1 Else RoundUp = lNumber End If End Function
use these functions written by gxparks![]()





Reply With Quote