OVH Cloud OVH Cloud

concaténer des fichiers texte

1 réponse
Avatar
jpg
Bonjour,

J'ai plusieurs fichiers texte sources que je souhaite=20
concat=E9ner dans un seul fichier.

Les fichiers sources se nomment :
fic01.txt
fic02.txt
..
fic99.txt

J'arrive =E0 faire la boucle (puisque jusqu'=E0 pr=E9sent je les=20
importais dans une table), mais aujourd'hui j'aimerais ne=20
faire qu'un seul fichier --> fichier.txt(avec les lignes=20
de fic02 sous celles de fic01 et ainsi de suite).

J'imagine que "OpenTextFile" devrait pouvoir fonctionner=20
mais je ne parviens pas =E0 l'utiliser et, qui plus est, je=20
ne sais pas du tout comment concat=E9ner plusieurs fichier.

Merci beaucoup pour votre aide.

1 réponse

Avatar
bjf
Salut jpg

ci-dessous un exemple. A trier.

Private Sub Commande227_Click()
'Charger les données dans la base de données
Dim t As DAO.TableDef, f As DAO.Field, bd As DAO.Database,
rs1 As DAO.Recordset
'Initialise la base
Set bd = CurrentDb
'Initialise la table
Set t = bd.TableDefs("USYSParoisse")
'Charge les données
Set rs1 = t.OpenRecordset()
'Déclare les variables
Dim NoParoisse As String, I As Integer, Y As Integer,
typeFile As String, MyPath As String
Dim intTotalFiles As Integer
'Variable pour table des fichiers
Dim strTable As String, strField As String, strFile As
String, strDir As String

'Initialisation du directory
'Fonction Répertoire de Infos_Disque
MyPath = SelectFolder()
If MyPath <> "" Then
typeFile = InputBox("Recherche de fichier
type ? ", , "*.txt")
If typeFile <> "" Then
ViderTable ("SCR mutations importées brutes")

intTotalFiles = 0
For Y = 2 To 11
NoParoisse = rs1(Y)
If (NoParoisse > 0) And (NoParoisse < 99) Then
typeFile = "FCRN*" & NoParoisse & ".txt"
strTable = ("T_NomFichierMutations")
strField = ("Nom_Fichier")
With Application.FileSearch
.NewSearch
.fileName = typeFile
.LookIn = MyPath
.SearchSubFolders = True
.MatchTextExactly = False
'.MatchAllWordForms = True
'.MatchTextExactly = True
If .Execute(SortBy:=msoSortByFileName,
_
SortOrder:=msoSortOrderAscending)
0 Then
MsgBox ("Nombre de fichiers

trouvés = " & .FoundFiles.Count & " (" & .FoundFiles(1)
& " )")
intTotalFiles = intTotalFiles
+ .FoundFiles.Count
For I = 1 To .FoundFiles.Count
DoCmd.TransferText
acImportFixed, "TPAR FCRN Spécification d'importation", _
"SCR mutations importées
brutes", .FoundFiles(I), False, ""
strFile = .FoundFiles(I)
strDir = ChercheChemin(strFile)
strFile = Right(strFile, Len
(strFile) - (Len(strDir)))
'Requête SQL
CurrentDb.Execute "INSERT INTO
[" & strTable & "] ( [Nom_chemin] , [" & strField & "])" _
& "SELECT """ & strDir
& """, """ & strFile & """;"
Next I
End If
End With
End If 'Paroisse
Next Y
'Chargement dans la table

suite du traitement

End If 'typeFile
ViderTable ("SCR mutations importées brutes")
'MsgBox "Table(s) Paroissiale(s) importée(s)!" & Chr
(13) & Chr(10) & Chr(10) & "Cliquez sur OK !",
vbInformation, "IMPORTATION INITIALE!"

Else
'Fichier trouvé
End If

MsgBox ("Nombre total de fichiers = " & intTotalFiles)


End Sub

-----Message d'origine-----
Bonjour,

J'ai plusieurs fichiers texte sources que je souhaite
concaténer dans un seul fichier.

Les fichiers sources se nomment :
fic01.txt
fic02.txt
...
fic99.txt

J'arrive à faire la boucle (puisque jusqu'à présent je
les

importais dans une table), mais aujourd'hui j'aimerais ne
faire qu'un seul fichier --> fichier.txt(avec les lignes
de fic02 sous celles de fic01 et ainsi de suite).

J'imagine que "OpenTextFile" devrait pouvoir fonctionner
mais je ne parviens pas à l'utiliser et, qui plus est, je
ne sais pas du tout comment concaténer plusieurs fichier.

Merci beaucoup pour votre aide.

.