Menu

Concaténer des fichiers TXT [Fermé]

- - Dernière réponse :  nour - 7 mai 2015 à 22:52
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
Afficher la suite 

11 réponses

Meilleure réponse
16
Merci
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

Dire « Merci » 16

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 46912 internautes nous ont dit merci ce mois-ci

9
Merci
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
3
Merci
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 !
2
Merci
salut,

Il serait utile de préciser dans quel language tu veux faire ça.

Bon weekend
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
2
Merci
Bonjour,
On peut faire simplement
cat *.TXT >> resulatat.txt
Messages postés
12
Date d'inscription
dimanche 13 février 2005
Dernière intervention
13 février 2005
1
0
Merci
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.
@+
aldo13
Messages postés
491
Date d'inscription
lundi 24 janvier 2005
Dernière intervention
28 avril 2005
74 > Angy -
Angy ,

Difficile malgré tout de repondre a ca ,
j'ai commencé en C sous Linux , donc rien a voir avec
les outils comme Visual C ou les produits RAD Borland
maintenant pour maitriser les bases de la programmation,
je dirais au miminum 1 an , mais tu peux tres bien
telecharger par exemple delphi 6 perso qui est gratos ,
et en etudiant les exemples avancer rapidement.

voici 2 ou 3 bonnes adresses :

codeguru.com
codeproject.com
sourceforge.net
aldo13

etc etc

bye bye
angy21
Messages postés
39
Date d'inscription
vendredi 5 mars 2004
Dernière intervention
26 juin 2007
1 > aldo13
Messages postés
491
Date d'inscription
lundi 24 janvier 2005
Dernière intervention
28 avril 2005
-
Re...

Pour l'instant je m'attaque à Visual Basic après avoir commencé par les macros enregistrées mais je sans que le chemin sera long et semé d'embuches mais quand je vois le travail que tu as pu faire cela m'encourage à tenir bon. Et comme je ne suis pas du genre à baisser les bras je devrais y arriver.

Je vais aller regarder les liens que tu m'as envoyé

En tout cas je tenais à te remercier à nouveau pour ta précieuse aide.

BOn dimanche après midi

Angy
angy21
Messages postés
39
Date d'inscription
vendredi 5 mars 2004
Dernière intervention
26 juin 2007
1 > aldo13
Messages postés
491
Date d'inscription
lundi 24 janvier 2005
Dernière intervention
28 avril 2005
-
Bonjour,

Je me permet de revenir vers toi afin de te poser une dernière question :

est-ce que tu penses qu'il est possible d'optenir le résultat que donne ton programme mais avec le language dos ?

J'ai reussi à concaténer mais pas à rajouter le nom de fichier...

Merci par avance
Bonjour
C'est quoi ton script
comment ecrit un script qui concatène tous lrs fichiersdu type fichier1.txt,fichier2.txt
Messages postés
1621
Date d'inscription
vendredi 26 novembre 2004
Dernière intervention
30 mars 2006
209
0
Merci
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
Messages postés
564
Date d'inscription
vendredi 5 mars 2004
Dernière intervention
30 octobre 2005
175
0
Merci
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++
Merci pour ton aide, je ne peux pas tester pour l'isntant car c'est mon zom qui maitrise Linux mais je verrais ce soir avec lui.

De plus aldo m'a crée un programme qui donne le résultat que je cherchais.

Je te remercie en tout cas pour ton aide.

Angy
Messages postés
1621
Date d'inscription
vendredi 26 novembre 2004
Dernière intervention
30 mars 2006
209
0
Merci
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
angy21
Messages postés
39
Date d'inscription
vendredi 5 mars 2004
Dernière intervention
26 juin 2007
1 -
Je n'arrive pas à m'en servir... je suis vraiment nul !!!

Tant pis, mais merci quand même.
Messages postés
1621
Date d'inscription
vendredi 26 novembre 2004
Dernière intervention
30 mars 2006
209
0
Merci
dans excel tu fais alt f11
puis insertion module
tu copies le texte fe la fonction
puis affichage fenêtre excécution
angy21
Messages postés
39
Date d'inscription
vendredi 5 mars 2004
Dernière intervention
26 juin 2007
1 -
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
0
Merci
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...
Bonjour,

Sinon, il y a plus simple en Dos :

copy rep/* merge.txt

.. et le tour est joué !
> arnauldl -
Bonjour,

J'ai exactement la même ploblématique que Angy21.
J'aimerais un plus de précision sur votre solution.
rep = nom du répertoire où se trouvent les fichiers ?

J'ai essayé comme çà :

copy monrepertoire/* merge.txt mais ça ne marche pas !!

Pourriez-vous m'aider SVP ?

Merci