Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

traitement de masse et concatenation

5 réponses
Avatar
free.fr
bonjour
j'ai dans un repertoire un grand nombre de petits fichiers word (*),genre
une ligne ou deux de texte par fichier.
je voudrai les concatener dans un seul fichier.
j'ai essayé la commande DOS copy fichier* /B sortie.doc /B , ca concatène
bien les fichiers mais quand j'ouvre sortie.doc je ne vois que le contenu du
premier fichier. Probablement un pb de fin de fichier.
ai-je loupé qqchose , une astuce ?
sinon comment faire la meme chose en VBA ?
merci

(*) en fait ce sont plutôt des fichiers RTF mais je ne pense pas que ca
change grand chose.

5 réponses

Avatar
jean-marc
"free.fr" wrote in message
news:47a1fe06$0$1191$
bonjour
j'ai dans un repertoire un grand nombre de petits fichiers word (*),genre
une ligne ou deux de texte par fichier.
je voudrai les concatener dans un seul fichier.
j'ai essayé la commande DOS copy fichier* /B sortie.doc /B , ca concatène
bien les fichiers mais quand j'ouvre sortie.doc je ne vois que le contenu
du premier fichier. Probablement un pb de fin de fichier.
ai-je loupé qqchose , une astuce ?
sinon comment faire la meme chose en VBA ?
merci



Les fichiers word/rtf etc. ne sont pas des fichiers texte
mais des fichiers binaires.
Tu ne peux absolument pas les concaténer.
C'est comme si tu essaies de concaténer 2 fichiers jpg,
tu ne verras pas 2 images.

Pas de solutions toute faite, à part ouvrir les fichiers
un par un (avec la méthode appropriée en fonction du
format), récupérer le texte d'une façon ou d'une autre,
écrire le texte par concaténations successives dans un
fichier à part.


--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
free.fr
pourtant en googlisant un peu il existerait sur mac un utilitaire TEXTUTIL
qui saurait le faire.
D'autre part WIKI donne le format RTF comme non binaire.
Cela dit ca ne fait pas avancer ma question.
A moins que dans le monde UNIX... mais là je deviens hors charte.




Avatar
Jean-marc
free.fr wrote:
pourtant en googlisant un peu il existerait sur mac un utilitaire
TEXTUTIL qui saurait le faire.



Moi aussi je peux écrire un utilitaire qui le fait. C'est facile.

D'autre part WIKI donne le format RTF comme non binaire.



Il ne faut pas croire tout ce que dit wiki :o)
Anyway, RTF est un peu à part: ce n'est pas du binaire, MAIS ce n'est pas
non plus typiquement un fichier TEXTE. C'est entre les 2, et en tout cas ça
ne
se concatène pas comme ça.

Cela dit ca ne fait pas avancer ma question.



Si. La solution t'a été donnée:
1) Déterminer quel est ton format: DOC (Word) ou RTF
2) en fonction, ouvrir les fichiers un par un, récupérer
le contenu texte (si c'est un RTF cherche du coté du controle
Rich Text Box, c'est tout facile)
3) concaténer à la main dans un fichier tierce (avec un simple
print #f dans un fichier ouvert en output).

A moins que dans le monde UNIX... mais là je deviens hors charte.



A peine, mais la n'est pas le problème. Sous Unix comme partout, il y a
des fichiers texte, concaténables par simple ajout, et des non TEXTE,
pour lequel on doit programmer un peu pour faire ce genre de choses.

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
Patrice Henrio
Jean-marc a écrit :
free.fr wrote:
pourtant en googlisant un peu il existerait sur mac un utilitaire
TEXTUTIL qui saurait le faire.



Moi aussi je peux écrire un utilitaire qui le fait. C'est facile.

D'autre part WIKI donne le format RTF comme non binaire.



Il ne faut pas croire tout ce que dit wiki :o)
Anyway, RTF est un peu à part: ce n'est pas du binaire, MAIS ce n'est pas
non plus typiquement un fichier TEXTE. C'est entre les 2, et en tout cas ça
ne
se concatène pas comme ça.

Cela dit ca ne fait pas avancer ma question.



Si. La solution t'a été donnée:
1) Déterminer quel est ton format: DOC (Word) ou RTF
2) en fonction, ouvrir les fichiers un par un, récupérer
le contenu texte (si c'est un RTF cherche du coté du controle
Rich Text Box, c'est tout facile)
3) concaténer à la main dans un fichier tierce (avec un simple
print #f dans un fichier ouvert en output).

A moins que dans le monde UNIX... mais là je deviens hors charte.



A peine, mais la n'est pas le problème. Sous Unix comme partout, il y a
des fichiers texte, concaténables par simple ajout, et des non TEXTE,
pour lequel on doit programmer un peu pour faire ce genre de choses.



Un fichier destiné à être affiché et comportant un format (doc, rtf ou
autre) se compose traditionnellement d'une entête de fichier qui
peut-être plus ou moins importante et qui indique justement avec quoi on
peut le lire, du corps du fichier (y compris les marques de format de
texte) et d'une fin de fichier.
En concaténant via le dos on ajoute tous les fichiers les uns aux autres
(ce qui doit se voir dans la taille) mais malheureusement la fin de
fichier vient avec et donc à la lecture guidée par le format, on va
rencontrer la fin du fichier à la fin du premier texte ... d'où le résultat.

Pour concaténer ces fichiers, il faut donc récupérer les textes bruts
des fichiers et les ajouter au fur et à mesure dans un nouveau fichier.
Ce nouveau fichier sera lisible au format txt (pas de format en fait)
mais pas en word, ni même en rtf à priori (j'ai un petit doute sur ce
dernier point)?
Avatar
LE TROLL
Bonjour,

Est-ce que Word ne ferait pas cette fonction,
joint à une macro si les fichiers sont nombreux ou
répétitifs, dans ce cas, voir le vbA...
Le rtf que j'utilise assez souvent, est très
proche du doc... Le reste a déjà été dit...

--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"free.fr" a écrit
dans le message de news:
47a1fe06$0$1191$
| bonjour
| j'ai dans un repertoire un grand nombre de
petits fichiers word (*),genre
| une ligne ou deux de texte par fichier.
| je voudrai les concatener dans un seul fichier.
| j'ai essayé la commande DOS copy fichier* /B
sortie.doc /B , ca concatène
| bien les fichiers mais quand j'ouvre sortie.doc
je ne vois que le contenu du
| premier fichier. Probablement un pb de fin de
fichier.
| ai-je loupé qqchose , une astuce ?
| sinon comment faire la meme chose en VBA ?
| merci
|
| (*) en fait ce sont plutôt des fichiers RTF mais
je ne pense pas que ca
| change grand chose.
|