Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: VB5,VB6
Expertise: Intermediate
Sep 1, 2001



Building the Right Environment to Support AI, Machine Learning and Deep Learning

ConcatenateFiles - Merge multiple text files in one

' Concatenate a variable number of text files into a single result file
' Params:
'  - ResultFile: the complete path of the result file you want to create
'  - Separator: a string that is written when a file is added to the result 
' file.
'      Note: this string can contain the #FilePath# tag that will be replaced
'      with the path of the file being added
'  - SourceFiles: a sequence of files whose content will be concatenated
' Example:
'   ConcatenateFiles "D:\res.txt", "------ NEW FILE: #FilePath# ------",
'  "D:\1.txt", "D:\2.txt", "D:\3.txt"

Private Sub ConcatenateFiles(ByVal ResultFile As String, _
    ByVal Separator As String, ParamArray SourceFiles() As Variant)
    Dim FSO As New FileSystemObject
    Dim fsSourceStream As TextStream
    Dim fsResStream As TextStream
    Dim sSeparator As String
    Dim i As Integer
    On Error Resume Next
    ' create a new file
    Set fsResStream = FSO.OpenTextFile(ResultFile, ForWriting, True)
    ' for each source file in the input array
    For i = 0 To UBound(SourceFiles)
        ' add the separator first (replacing the special tag for the file path)
        sSeparator = Replace(Separator, "#FilePath#", SourceFiles(i))
        fsResStream.Write sSeparator & vbCrLf
        ' open the file in read mode
        Set fsSourceStream = FSO.OpenTextFile(SourceFiles(i), ForReading)
        ' add its content + a blank line to the result file
        fsResStream.Write fsSourceStream.ReadAll & vbCrLf
        ' close this source file
    Next i
End Sub
Marco Bellinaso
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date