Concaténer des fichiers TXT
Angy
-
nour -
nour -
Bonjour à tous,
Je souhait concatener le contenu de plusieurs fichier TXT en un seul fichier TXT ou bien XLS...
Par contre là ou se pose le problème (car avec le soft Concat14fr j'ai déjà réussi à faire cela) il faudrai que sur chaque ligne du fichier récap figure le nom du fichier d'origine !
Est-ce possible ?
Merci par avance
Angy
Je souhait concatener le contenu de plusieurs fichier TXT en un seul fichier TXT ou bien XLS...
Par contre là ou se pose le problème (car avec le soft Concat14fr j'ai déjà réussi à faire cela) il faudrai que sur chaque ligne du fichier récap figure le nom du fichier d'origine !
Est-ce possible ?
Merci par avance
Angy
Configuration: Windows
11 réponses
-
Bonjour,
la solution d'Arnaud marche très bien chez moi, mais en mettant \ au lieu de /.
C'est-à-dire dans ton cas :
opy monrepertoire\* merge.txt
bon courage -
sans le nom du fichier en dos
type *.txt >> c:\monfichier.txt
avec le nom de fichier en deux lignes (entrée pour passer a la deuxieme)
FOR %i IN (*.txt) do (@echo %i
@type %i) >> c:\monficresult.txt -
-
si vos fichiers ont un motif commun (par exemple fichier1.txt et fichier2.txt), on peut utiliser la syntaxe :
cat fichier* >> resultat.txt
Mais ATTENTION : si le motif se retrouve également dans le fichier résultat, cela aura pour effet de tourner en boucle infiniment en faisant grossir le fichier résultat très rapidement jusqu'à saturation. Par exemple :
cat *.txt >> resultat.txt
EST INCORRECT ! -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
Bonjour,
Tout dabord un grand merci d'avoir pris le temps de me répondre.
Pour répondre a ta question :
Peux-importe le language, j'aimerais connaitre simplement une méthode pour laquelle cela fonctionne !
En effet, j'arrive à concaténer les fichiers mais pas à faire que le nom du fichier d'origine soit repris sur chaque ligne comme l'exemple si dessous dans le fichier "résultat" :
xxxxx xxx toto.txt
xxxxx xxx toto.txt
xxxxx xxx toto.txt
xxxxx xxx anonyme.txt
xxxxx xxx anonyme.txt
Si tu as une idée pour m'orienté vers une méthode qui me donnera ce résultat, merci par avance.
Angy
-
-
Si tu possedes linux je peux te faire un petit script qui peut à la fois te concatener tes fichiers txt et modifier le nom du fichier.
@+-
Bonjour,
Je suis sous windows mais mon conjoint à un pc au travail qui tourne sous linux alors pourquoi pas, si cela peut me donner mon résultat...
J'ai eu beau chercher, tester, retester, je n'arrive pas à faire que le nom du fichier d'origine siot repris dans le fichier "récapitulif" !!! et ce qui serait bien c'est qu'il soit repris sur chaque ligne le concernant...
Toto.txt et Anonyme.txt sont deux fichiers par exemple à concatener ensemble (ca j'y arrive sans problème) mais je souhaiterais avior le résultat suivant :
xxxxx xxx toto.txt
xxxxx xxx toto.txt
xxxxx xxx toto.txt
xxxxx xxx anonyme.txt
xxxxx xxx anonyme.txt
C'est une colle qu'on m'a posé et la pour moi c'est pire que de la SuperGlu 3 ;-)
Peux-tu me dire si cela est possible ?
Merci en tout cas pour ton aide
ANgy -
Salut ,
Regarde j'ai fais un petit programme il est ici :
http://shinetell.free.fr/concat2.exe
premier boutton => premier fichier
2eme => 2eme
3eme => sauvegarde
sans garantie. -
Génial !!! mais... et oui encore un mais.
En effet c'est tout à fait le résultat que je veux obtenir mais j'ai 580 fichiers à traiter.
Peux-tu me dire ce qu'il est de ton programme ? Puis-je en connaitre les sources du programme ? Et en quel language il a été écrit ?
En tout cas merci énormément pour ton aide et le temps passé pour moi.
J'aimerai avior un jour ton niveau mais en programmation je débute a peine donc c'est pas demain la veille... :-)
Angy -
ok c'etait fait avec Borland C Builder ,
j'ai fais une nouvelle version avec Delphi ,
la tu peux mettre plus de 2 fichiers , en cliquant chaque
fois sur le premier bouton .
J'ai laissé les sources dans le zip , il n'y a pas de gestion des
erreurs , les lignes vierges sont pas traitées ,
et j'ai pas bcp testé.
http://shinetell.free.fr/monconcat.zip -
Tu es super !!!!
Merci beaucoup, c'est vraiment ca que je voulais obtenir. Tu as fait du super boulot, je viens de tester avec 10 fichiers et ca marche.
J'espère qeu cela ne t'a pas pris trop de temps.
Je vais dorénavant essayé de comprendre les sources après avoir trouvé le moyen d'ouvrir tes fichiers... ;-)
A bientôt et Merci encore !!!
Angy
-
-
dos fais ca tres bien
tu mets tes fichiers dans un répertoire
tu ecrits un batch
dir >recap1.txt
puis copy recap1.txt+fic1.txt...+ficn.txt recap.txt
del recap1.txt
-
Merci beaucoup pour ton aide, mais malheureusement cela ne donne pas encore tout à fait l'effet escompté.
En effet j'avais moi meme testé le concaténé en Dos, ce qui marche très bien mais je n'arrive toujours pas à faire que chaque ligne des fichiers d'origines reprenne le nom du fichier d'origine à la fin de chaque ligne...
Par exemple j'ai deux fichiers toto.txt et anonyme.txt avec chacun 2900 lignes par fichier et j'aimerai quand les concaténant j'obtienne un fichier récap avec au bout des lignes du fichier toto.txt et bien son nom "toto.txt" et idem pour les lignes du fichier "anonyme.txt".
xxxxx xxx toto.txt
xxxxx xxx toto.txt
xxxxx xxx toto.txt
xxxxx xxx anonyme.txt
xxxxx xxx anonyme.txt
Je sais qu'il est très simple de le faire avec Concat14fr et Excel mais le problème c'est que j'ai 580 fichiers avec chacun 2900 lignes ce qui fait qu'Excel ne peux pas et vu le nombre de fichier cela ferait un lourd travail c'est poru cela que je cherche une solution un peu plus simple.
Merci en tout cas pour ton aide
Angy
-
-
Salut,
Voici un petit script sous GNU/Linux.
Comme le préconisait random créé un fichier contenant le nom de tes fichiers texte, en admettant qu'ils soient tous placés dans le même répertoire tu fais: ls *.txt > liste.txt, par exemple.
Ensuite depuis ce même répertoire tu lances le script de cette façon: ./concat liste.txt recap.txt
Code du script:#!/bin/bash # Usage ./concat ListeDeFichiers FichierRecap # Réglage du retour chariot comme seul séparateur, lors de l'expansion IFS=$'\n' # Traitement des fichiers contenus dans le premier argument de la ligne de cde for Fichier in `cat $1` do # Traitement des lignes pour chaque fichier for Ligne in `cat $Fichier` do # Concaténation dans le fichier passé en deuxième argument echo $Ligne $Fichier >> $2 done done
J'ai testé sur une dizaine de fichiers d'une centaine de lignes chacun et ça fonctionne.
A++ -
essaye ca
Function fichier(x As String)
Dim dd As Variant
Dim lin As String
Open "c:\@mesdoc\resu.txt" For Output As #2
On Error GoTo machin
ChDir x
dd = Dir(x & "\*.txt")
Do Until dd = ""
Open dd For Input As #1
Do While Not EOF(1)
Input #1, lin
Write #2, lin & " " & dd
Loop
Close #1
dd = Dir
Loop
machin:
Close #2
End Function
tu mets ta fonction en vba
tu l'appelles sous la fenetre resultat
print fichier(directory par exemple "c:\machin\chouette")
avant tu crées une directory
c:\@mesdoc\
à al fin dans cette rirectory tu retrouveras ton fichier sous le nom de resul
pb résiduel tes lignes seront enacadrées de guillemets
sous excel remplacer " pr rien
-
dans excel tu fais alt f11
puis insertion module
tu copies le texte fe la fonction
puis affichage fenêtre excécution
-
C'est bien ce que j'avais fait mais cela ne me donne rien...
- j'ai bien crée un répertoire dans C: @mesdoc
- dedans j'ai mis mes fichiers .txt que je veux voir concaténer
- j'ai ouvert excel et mis tes codes dans Visual Basic (je l'avais mis dans feuil1 mais après ton deuxième post je l'ai refait en insérant un module puis en copiant colant tes codes)...
- j'ai lance par affichage fênetre exécution
Ce qui a pour effet de m'ouvrir sous la fenetre de droite une fenetre exécution mais chez tout...
Te tracasse pas, le programme d'aldo fonctionne très bien mais j'aurais voulu réussir avec une méthode que je maitrise car la programmation ca me dépasse pour l'instant.
En tout cas je te remercie pour ton aide
-
-
Ca tient sur unigne de commande si on utilise pas les variables...
rem repertoire ou se trouve les fichiers
set repertoire_source=c:\temp
rem fichier de resultat
set fichier_resultat=c:\resultat.txt
rem pour chaque fichier texte du repertoire, on le met dans i
rem ensuite pour chaque ligne de ce fichier, on la met dans a
rem puis redirige un echo des variables a et i vers le fichier de resultat
rem ca va s executer tant qu il y a des lignes dans le fichier et tant qu'il y a des fichiers
for /f %%i in ('dir /b %repertoire_source%\*.txt') do for /f "tokens=1 delims=" %%a in (%repertoire_source%\%%i) do echo %%a %%i >> %fichier_resultat%
Enfin tu dois maitriser maintenant...