Fusionner des fichiers texte
Je dispose de plusieurs fichiers texte dans un dossier bien identifié. En complément, les noms de tous ces fichiers démarrent par "access" (par exemple : access001.txt, access002.txt ou encore access test.txt).
Je souhaite les regrouper en un seul fichier texte qui s'appellerait test.txt. Comment faire ?
Voici un exemple de listing qui fera ça. A vous d'aménager les chemins pour qu'il fonctionne correctement. Notez que le listing est prévu pour VBScript, c'est pourquoi les variables ne sont pas typées. Il fonctionnera donc dans un fichier .vbs, mais également dans une procédure Sub/End Sub Visual Basic. A vous de tester !
Dim fso, fld, fle
Dim stmOrig, stmTarget
Dim strPath
' Dossier à analyser
strPath = "C:\Documents and Settings\Hervé\Mes documents"
' Fichier à créer
strNewFile = "C:\Documents and Settings\Hervé\Bureau\test.txt"
' Dossier
Set fso = CreateObject("Scripting.FileSystemObject")
Set fld = fso.GetFolder(strPath)
' Ouvrir le fichier en écriture
Set stmTarget = fso.CreateTextFile(strNewFile)
' Parcourir tous les fichiers
For Each fle In fld.Files
If Left(fle.Name, 6) = "access" Then
' Lire tout le fichier texte
Set stmOrig = fle.OpenAsTextStream()
strBuff = stmOrig.ReadAll()
' Ecrire dans le nouveau fichier
stmTarget.WriteLine strBuff
stmOrig.Close
Set stmOrig = Nothing
End If
Next
' Fermer le fichier créé
stmTarget.Close
' Libérer les ressources
Set stmTarget = Nothing
Set fld = Nothing
Set fso = Nothing
MsgBox "Terminé !"
Dim stmOrig, stmTarget
Dim strPath
' Dossier à analyser
strPath = "C:\Documents and Settings\Hervé\Mes documents"
' Fichier à créer
strNewFile = "C:\Documents and Settings\Hervé\Bureau\test.txt"
' Dossier
Set fso = CreateObject("Scripting.FileSystemObject")
Set fld = fso.GetFolder(strPath)
' Ouvrir le fichier en écriture
Set stmTarget = fso.CreateTextFile(strNewFile)
' Parcourir tous les fichiers
For Each fle In fld.Files
If Left(fle.Name, 6) = "access" Then
' Lire tout le fichier texte
Set stmOrig = fle.OpenAsTextStream()
strBuff = stmOrig.ReadAll()
' Ecrire dans le nouveau fichier
stmTarget.WriteLine strBuff
stmOrig.Close
Set stmOrig = Nothing
End If
Next
' Fermer le fichier créé
stmTarget.Close
' Libérer les ressources
Set stmTarget = Nothing
Set fld = Nothing
Set fso = Nothing
MsgBox "Terminé !"