[..] Fusion de fichier

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
jusfacat
Niveau 1
Niveau 1
Messages : 6
Enregistré le : jeu. 27 janv. 2011 10:41
Status : Hors ligne

[..] Fusion de fichier

#1

Message par jusfacat »

Bonjour,
Je suis débutant en AutoIt, je voudrais copier plusieurs fichiers .txt d'un même répertoire, dans un seul et même fichier .txt, j'ai essaiyé avec la commande filecopy, mais cette dernière écrase le fichier source. existe t-il une commande qui fusionnerais les fichiers .txt.
Merci pour votre aide.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Fusion de fichier

#2

Message par Tlem »

Ou bien vous lisez le contenu de chaque fichier afin de l'incorporer dans le fichier 'receveur', ou bien vous fusionnez vos fichiers grâce à la commande DOS COPY.
Pour copy => http://www.autoitscript.fr/forum/viewto ... 585#p17585
Pour le reste, lisez le sujet en entier.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [..] Fusion de fichier

#3

Message par ZDS »

Bonjour,

Si possible, modifie proprement ton titre de message (les [..] avant, pas après, et avec 2 points dedans) et ton message aussi (tout le commentaire de départ ^^).
Sinon, voici un script qui prend les 5 fichiers C:\toto?.txt, et les fusionne dans C:\toto.txt :

Code : Tout sélectionner

Local $origines[5] = ["C:\toto1.txt","C:\toto2.txt","C:\toto3.txt","C:\toto4.txt","C:\toto5.txt"]
Local $destination = "C:\toto.txt"

Local $flux_destination = FileOpen($destination, 10) ; 2+8 : effacement du contenu + création du fichier si besoin
If $flux_destination <> -1 Then
    For $i = 0 To UBound($origines)-1
        Local $flux = FileOpen($origines[$i], 0) ; 0 : lecture seule
        If $flux <> -1 Then
            Local $contenu = FileRead($flux)
            FileWrite($flux_destination, $contenu&@CRLF) ; ajout du contenu à la suite du flux
        Else
            ; Pas de fichier, passage au suivant
        EndIf
        FileClose($flux)
    Next
Else
    ; Impossible de créer la destination
EndIf
FileClose($flux_destination)
Il est surement à améliorer, mais voici qui te donne une idée de départ pour ton algo :)

A bientôt !

PS: Ma précédente réponse s'est perdue dans la poubelle, ton ancien message ne correspondait pas aux règles de présentation des messages ^^
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
Répondre