COMMENT CONCATENER PLUSIEURS FICHIERS TXT

COMMENT CONCATENER PLUSIEURS FICHIERS TXT - Programmation

Marsh Posté le 23-08-2001 à 15:20:44    

Je recherche une commande dos ou fichier batch permettant de concaténer 5000 fichiers texte.
Je dois les fusionner dans un seul fichier.
le nom des fichiers sont fils0001.txt à file5000.
Sinon un petit prog en c++ ?
Merci d' avance à tout ceux qui veulent bien m' aider.

Reply

Marsh Posté le 23-08-2001 à 15:20:44   

Reply

Marsh Posté le 23-08-2001 à 15:50:34    

simple  
 
tu cree un fichier cible tu l'ouvre tu recopie les != fichier l'un derierre l'autre et tu referme ton field descriptor
 
 
fd1 = open("cible.txt",O_WONLY);
  tant que fichier source
    fd2 = open("source1.txt",O_RONLY);  
     tant que fichier source != vide
        read dans  le fd2
        write dans le fd1
    close(fd2)
close(fd1);
 
et zou

Reply

Marsh Posté le 23-08-2001 à 16:10:59    

Il y a une commande DOS qui permet de le faire, mais le problème est de savoir si cela sera dans le bon ordre (peut-être l'ordre de création (date/heure)).
 
c'est
for %f in (*.txt) do copy *.txt >> cumul.txt
 
Le >> permet de concaténer . Si cumul.txt n'existe pas (il vaut mieux sinon ca va se mordre la queue !!), il sera créé.

Reply

Marsh Posté le 23-08-2001 à 16:12:20    

1) tu vas dans le repertoire ou sont tes fichiers et tu fais un  
  dir fil*.txt /b > list.bat
2) tu edites le .bat dans Word et tu remplaces  
  .txt^p
par  
  .txt /a +  
3)tu ajoutes en debut de ligne
  copy  
4) en fin de ligne tu vires le dernier + et tu ajoutes  
 fils.txt /a
 
ca va te faire une ligne:
copy fils0001.txt /a + fils0002.txt /a + .... + fils5000.txt /a fils.txt /a
 
ca devrait marcher...
 
pense a faire une sauvegarde avant, un accident est si vite arrivé ;)


---------------
www.alliancefrancophone.org ... Home is where the heart is
Reply

Marsh Posté le 23-08-2001 à 16:16:04    

heu...
 
copy base_name* concat.txt
 
ça marche pas sous DOS ?

Reply

Marsh Posté le 23-08-2001 à 16:21:30    

Sous win 2000 la commande DOS suivante doit marcher (à mettre dans un BAT). Créer d'abord un fichier résult.txt vide :
For /L %%L in (0,1,4) DO FOR /L %%K in (0,1,9) DO FOR %%J in (0,1,9) DO FOR %%I in (0,0,9) DO copy /A result.txt+file%%L%%K%%J%%I.txt result.txt
copy /A result.txt+file5000.txt result.txt
 
NB : il doit falloir créer un fichier texte vide file000.txt
A+

Reply

Marsh Posté le 23-08-2001 à 16:22:34    

minusplus> j'aurais appris qqchose aujourd'hui :jap:
 
ca a l'air en effet de marcher (je suis avec 2k)

 

[edtdd]--Message édité par JWhy--[/edtdd]


---------------
www.alliancefrancophone.org ... Home is where the heart is
Reply

Marsh Posté le 23-08-2001 à 16:26:23    

mssemblait bien aussi... ;) :sol:

Reply

Marsh Posté le 23-08-2001 à 16:29:12    

Celà marche effectivement, mais je ne sais pas si les fichiers sont copiés dans l'ordre. Je pense qu'ils sont copiés selon l'ordre de création sur le disque. Si tu dois assurer la copie dans l'ordre, ma méthode (que je n'ai pas testée) doit marcher
A+

Reply

Marsh Posté le 23-08-2001 à 16:32:14    

Ca marche sous WinNT4 aussi.
 
C'est une contraction que je ne connaissais pas, bien que très "agé".
 
Avec > ce serait catastrophique  :D  :D ...

Reply

Marsh Posté le 23-08-2001 à 16:32:14   

Reply

Marsh Posté le 23-08-2001 à 16:34:08    

Pour la méthode JWhy, y a peut-être pb de longueur de ligne DOS...  :)  :)  :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed