Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Concaténer des fichiers TXT

Angy, le vendredi 11 février 2005 à 10:40:12
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
Configuration: Windows
Répondre à Angy  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Aki, le samedi 12 février 2005 à 10:06:30
salut,

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

Bon weekend
Répondre à Aki

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Angy, le samedi 12 février 2005 à 20:51:17
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
Répondre à Angy

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Zebechamel, le dimanche 13 février 2005 à 01:11:08
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.
@+
Répondre à Zebechamel

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Angy, le dimanche 13 février 2005 à 08:21:19
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
Répondre à Angy

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
aldo13, le dimanche 13 février 2005 à 11:08:11
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.
Répondre à aldo13

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
angy, le dimanche 13 février 2005 à 11:48:02
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
Répondre à angy

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
aldo13, le dimanche 13 février 2005 à 14:04:06
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
Répondre à aldo13

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Angy, le dimanche 13 février 2005 à 14:13:11
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
Répondre à Angy

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Angy, le dimanche 13 février 2005 à 14:18:28
Une autre question mais qui a rien a voir avec le problème :

Combien de temps faut -il pour maitriser la programmation de base ?

Merci par avance

Angy
Répondre à Angy

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
aldo13, le dimanche 13 février 2005 à 14:43:42
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
Répondre à aldo13

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
angy21, le dimanche 13 février 2005 à 14:54:13
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
Angy qui veut mettre plus de flèches à son arc
Tout problème à 1 solution mais le + dur est de la trouver !­
Répondre à angy21

16


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
angy21, le lundi 14 février 2005 à 13:45:27
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
Angy qui veut mettre plus de flèches à son arc
Tout problème à 1 solution mais le + dur est de la trouver !­
Répondre à angy21

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
random, le dimanche 13 février 2005 à 09:12:10
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
elle est pas belle, la vie ?
Répondre à random

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Angy, le dimanche 13 février 2005 à 09:42:09
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
Répondre à Angy

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Ravachol, le dimanche 13 février 2005 à 14:01:58
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++ L'homme n'est pas fait pour le travail et la preuve,
c'est que ça le fatigue. Tristan Bernard
Répondre à Ravachol

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
angy, le dimanche 13 février 2005 à 14:17:18
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
Répondre à angy

17


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
random, le lundi 14 février 2005 à 16:24:46
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
elle est pas belle, la vie ?
Répondre à random

18


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
angy21, le lundi 14 février 2005 à 17:05:12
Je n'arrive pas à m'en servir... je suis vraiment nul !!!

Tant pis, mais merci quand même.
Angy qui veut mettre plus de flèches à son arc
Tout problème à 1 solution mais le + dur est de la trouver !­
Répondre à angy21

19


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
random, le lundi 14 février 2005 à 17:17:43
dans excel tu fais alt f11
puis insertion module
tu copies le texte fe la fonction
puis affichage fenêtre excécution
elle est pas belle, la vie ?
Répondre à random

20


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
angy21, le lundi 14 février 2005 à 17:33:31
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
Angy qui veut mettre plus de flèches à son arc
Tout problème à 1 solution mais le + dur est de la trouver !­
Répondre à angy21

21


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Keroz, le vendredi 8 décembre 2006 à 17:13:03
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...
Répondre à Keroz

22


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
arnauldl, le mardi 11 mars 2008 à 17:53:48
Bonjour,

Sinon, il y a plus simple en Dos :

copy rep/* merge.txt

.. et le tour est joué !
Répondre à arnauldl

23


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Solune44, le vendredi 27 juin 2008 à 15:55:20
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
Répondre à Solune44

24


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 cricri, le lundi 18 août 2008 à 16:06:51
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
Répondre à cricri
Fichier TXT Format TXT Un fichier TXT est un fichier texte, c'est-à-dire un simple fichier contenant du texte au format ASCII. Pour ouvrir ou modifier un tel fichier, il suffit d'utiliser le bloc-notes ou un éditeur de texte traditionnel. www.commentcamarche.net/contents/fichier/txt.php3
Manipulation fichier .txt (Résolu) Bonjour, Savez-vous ou je peux trouver expliqué simplement comment faire des manipulation simple sur des fichier .txt? Le problème : j'ai un fichier de structure M/J/A [tab] hh:mm:ss [tab] C [tab] mS/cm [tab] m 03/11/2005 [tab] 15:15:08... www.commentcamarche.net/forum/affich-1530596-manipulation-fichier-txt
C lecture fichier txt ligne par ligne (Résolu) Bonjour, j'aimerai lire un fichier txt ligne par ligne. Le but serai de commencer la lecture lorque la ligne commencera par " www.commentcamarche.net/forum/affich-4725325-c-lecture-fichier-txt-ligne-par-ligne
[MS-Dos] Ecrire dans un fichier texte en batchPour écrire dans un fichier texte, il suffit d'utiliser une redirection ">" :echo texte_à_ecrire > fichier_de_sortie.txtPour écrire à la fin d'un texte existant (concaténation) :echo "ecriture a la fin du fichier ">> fichier_de_sortie.txt www.commentcamarche.net/faq/sujet-2695-ms-dos-ecrire-dans-un-fichier-texte-en-batch
Sed - Insérer des espacementsEspacement dans un fichier Ajouter une ligne blanche après chaque phrase (ponctuée par un retour chariot) : sed G fichier.txt Ajouter une ligne blanche après chaque phrase (ponctuée par un retour chariot), sans tenir compte des lignes blanches... www.commentcamarche.net/faq/sujet-5590-sed-inserer-des-espacements
Sed - Numérotation de lignesNumérotation Numéroter les lignes (équivalent à "cat -n fichier.txt") sed = fichier.txt L'inconvénient c'est que l'affichage se fait sur 2 lignes. Donc pour palier à ce petit "défaut" sed = fichier.txt | sed 'N;s/\n/\t/' Numéroter les... www.commentcamarche.net/faq/sujet-5589-sed-numerotation-de-lignes
Scilab -> Importer un fichier txt volumineux (Résolu)Bonjour, Je suis confronté à un double problème dans le traitement de données contenues dans un fichier txt. 1- Il fait environ 7Mo, 1 200 000 valeurs environ. Il se présente sous la forme: 19;24;32;41 5;62;75;84 91;10;11;12 ... + environ 300 000... www.commentcamarche.net/forum/affich-7306577-scilab-importer-un-fichier-txt-volumineux
Script Shell pour parser un fichier txt (Résolu)Bonjour, voila j'ai un fichier txt de ce style : toto_tu|986541|2008-09-15|10101 liste_tu|8954|2008-09-15|19021 tat_te|liste_ta|81062|2008-09-15 toto_tu|4926458|2008-09-15|3604 news_autre|133346389|2008-09-15|Les articles |tata_te|3440070|2008-09... www.commentcamarche.net/forum/affich-8591842-script-shell-pour-parser-un-fichier-txt
Découper fichier TXT en pls fichiers Excel (Résolu)Bonjour, J'ai un fichier .txt qui contient 300 000 lignes. J'ai besoin de le mettre sous excel. Comment faire pour créer automatiquement un premier fichier avec les 65 536 premières lignes, un autre avec les 65536 suivantes ... et appeler... www.commentcamarche.net/forum/affich-3218992-decouper-fichier-txt-en-pls-fichiers-excel