Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CRÉATION D'UN FICHIER À PARTIR DE PLUSIEURS FICHIER (POUR ÉVITER LES COPIER-COLLER)


Information sur la source

Catégorie :Texte Classé sous : manipulation, fichier, concaténation, données Niveau : Débutant Date de création : 15/07/2007 Date de mise à jour : 15/07/2007 19:45:58 Vu / téléchargé: 6 160 / 521

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note


Description

le code colle plusieur fichier dans un seul en conservant les petits
 

Conclusion

voici une appli qui permet de créer un fichier à partir de plusieurs
fichier (de structure identique de préférence)

pour cela :

*  mettre les petits fichiers dans un répertoire
*  classer les fichers dans l'ordre

   ATTENTION : dans cette version l'appli colle a partie du fichier
le plus bas pour aller jusqu'au plus haut, pour changer le sens
voyer plus bas et dans le fichier du début à la fin.


*  choisir ce répertoire avec les controles
*  cliquez sur "coller les ficher"
*  le fichier est crée dans le même répertoire


pour le sens, le code actuel de la boucle est :

For a = File1.ListCount - 2 To 0 Step -1

pour l'autre sens

for a=0 to File1.listCount -2

c'est tout.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

15 juillet 2007 19:45:58 :
15/07/2007 le fichier créé n'est plus dans le même rep (pb entre le création et la prise en compte dans le controle file1 1 sous rep est créé dans le rep cible ou est placé le fichier final. rajout de on error resume next si plusieur opération sur le même repertoire une erreur se produit quand il créé un répertoire déja créé.

Commentaires et avis

signaler à un administrateur
Commentaire de hvb le 16/07/2007 09:35:37

File1.ListCount - 2..??
et ça sert à quoi de coller plusieurs fichiers en un pour "eviter le copier coller"?

signaler à un administrateur
Commentaire de aloneinthedark le 16/07/2007 09:45:10

salut,

j'ai récupérer les valeurs boursières sur internet et les périodes de téléchargement sont limités, il y a donc plusieurs (voire plus d'une dizaine de fichier ) pour la même valeur il faut donc copier coller bout a bout pour avoir un seul fichier.
le File1.listcount -2  
en fait c'est File1.listcount -1 , il compte le nombre de fichier présent dans un controle filelistbox, le -1 est pour pointer sur la valeur de file1.listindex qui commance a zéro et que le filecount commance a 1 y 'a donc une différence de 1
pourquoi -2 avant et -1 maintenant?
avant je mettais le fichier crée dans le même repértoire mais il n'était pas pris en compte lors du listcount je l'ai crée dans un autre rep.
voilà...
a+

signaler à un administrateur
Commentaire de clementpat le 16/07/2007 11:00:56

tres utile pour moi , je teste .

signaler à un administrateur
Commentaire de Patrice99 le 16/07/2007 13:52:21

On peut le faire via une simple commande dos : il suffit d'ajouter /b pour binaire et /Y pour mode automatique :
Copy /b /Y *.dat fusion.fus

signaler à un administrateur
Commentaire de Patrice99 le 16/07/2007 13:53:31

(Jai utilisé ce système une fois pour fusionner des fichiers html en un seul document)

signaler à un administrateur
Commentaire de clementpat le 16/07/2007 14:04:54

impeccable , mais le programme ajoute une ligne vide entre chaque fichier , comment faire pour ne pas avoir cette ligne vide ?

signaler à un administrateur
Commentaire de Renfield le 16/07/2007 14:13:33 administrateur CS

c'est l'instruction Print qui l'ajoute...

faire

Print 1,"jjj" ;

(point virgule) pour que Print n'ajoute pas de ligne

dommage de lire les fichiers ligne à ligne...
Open For Binary serait bien plus efficace, et tu n'aurais pas ce soucis de lignes vides

signaler à un administrateur
Commentaire de clementpat le 16/07/2007 14:37:13

le fichier me donne :

1
2
3
4

5
6
7
8

avec le point virgule cela me donne :

12345678

moi je veux que cela donne :

1
2
3
4
5
6
7
8

signaler à un administrateur
Commentaire de Renfield le 16/07/2007 14:47:51 administrateur CS

tu n'a lu qu'a moitié ce que j'ai écris.

le code de aloneinthedark lis les fichiers ligne a ligne.
quand il reecrit le contenu, il faut REMETTRE le saut de ligne, c'est bien ce que fait Print, dans son code. Cependant, c'est également fait pour la dernière ligne du fichier...

pas l'idéal de lire le fichier ligne a ligne ici, faudrait detecter la dernière ligne, pour savoir si l'on doit faire un saut ou pas... (y'a d'autres moyen simples)

pas l'ideal non plus comme code... pas de Close #1, les numéros de canaux en dur, etc

signaler à un administrateur
Commentaire de Renfield le 16/07/2007 14:58:47 administrateur CS

tout le code peut se résumer en :



Private Sub Drive1_Change()
    On Error Resume Next
    Dir1.Path = Drive1.Drive
    If Err Then
        MsgBox Err.Description, vbExclamation
        Drive1.Drive = Left$(Dir1.Path, 2)
    End If
End Sub

Private Sub Dir1_Change()
    File1.Path = Dir1.Path
End Sub

Private Sub Command1_Click()
Dim sDestPath As String
Dim hOutFile As Integer
Dim hInFile As Integer
Dim xbBuffer() As Byte
Dim i As Long
    If Right$(Dir1.Path, 1) = "\" Then
        sDestPath = Dir1.Path & "tmp"
    Else
        sDestPath = Dir1.Path & "\tmp"
    End If
    If Dir$(sDestPath, vbDirectory) = vbNullString Then
        MkDir sDestPath
    End If

    hOutFile = FreeFile
    Open sDestPath & "\Tmpfinal.txt" For Binary Access Write As #hOutFile
        For i = File1.ListCount - 1 To 0 Step -1
            hInFile = FreeFile
            Open Dir1.Path & "\" & File1.List(i) For Binary Access Read As #hInFile
                ReDim xbBuffer(LOF(hInFile))
                Get #hInFile, , xbBuffer
            Close hInFile
            
            Put hOutFile, , xbBuffer
            
            If i Then
                Put hOutFile, , vbCrLf
            End If
        Next i
    Close #hOutFile
    
    MsgBox "Terminé", vbInformation
End Sub

(je ne sais pas trop pourquoi les fichiers sont parcourus en sens inverse...)

signaler à un administrateur
Commentaire de aloneinthedark le 16/07/2007 21:19:43

salut,
merci pour les messages, c'est encourageant...
>CLEMENTPAT : je n'ai pas de ligne vide entre chaque fichier, et je ne sait pas pourquoi tu en as
>RENFIELD : le contrôle File1 est listé a l'envers parceque le contenu des fichier est classé par ordre chronologique et que les numéro d'index des fichiers s'ajoutent automatioquement au téléchargement (fich(1).xtx, fich(2).txt,etc...)
>RENFIELD : je trouve que l'open en binary est plus lent et plus long a programmer..
>pour la ligne il faut que le curseur soit à la fin de la dernière ligne sinon le fichier rajoute un retour chariot (13).

a+

signaler à un administrateur
Commentaire de clementpat le 16/07/2007 21:34:10

oui tu as raison , le curseur d'un des 2 fichiers etait mal placé.

ya plus de probleme .

signaler à un administrateur
Commentaire de flypig le 15/11/2007 15:17:41

Renfield, La fonction LOF renvoie une valeur de type long représentant
la taille. Si la taille du fichier est au dela, on aura sans doute problème.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Manipulation des données dans un texte !! [ par beber ] debutant 100% voir plus !Recherche comment ouvrir un fichier contenant des variables X et Y d'une fonction. Puis d'arriver sous VB à les recuperer pou Manipulation fichier TXT [ par flopad ] Salut tout le monde!Voici ce que je cherche à faire en VB, je ne sais pas comment m'y prendre :j'ai un fichier texte, je veux aller lire la dernière l Comment exploiter un fichier .BLB ? [ par dim07 ] Bonjour,Je travaille sur la migration d'une base de données (CRM ACT4.0 de Symantec) vers une autre (SQL Server).La base source est composée de fichie Importer un fichier .txt [ par darkflyer ] bonjour,je souhaite cette fois ( pour les gens qui ont eu affaire à moi ;-) )importer toutes les informations d'un fichiers texte . en faite chaque li MsFlexGrid [ par typher ] Bonsoir, J'ai un fichier texte avec des données que j'ajoute sur un grid, et j'aimerais sauvegarder le fichier une fois les données modifier ( étant d Liér les données d'une application vb avec un fichier excel [ par spootnic22 ] salut les experts,Je veux inserer les données des zones de texte d'une application faite par le visual basic dans un fichier excel par exemple: j'ai u import de fichier shp dxf... [ par Mlaetitia ] je cherche du code pour pouvoir importer (et exporter) les données des fichiers .shp, dxf dans une base de données.c'est assez urgent et important.mer problème d'enregistrement de données dans un fichier texte [ par zazsze ] Bonsoir à tous,Par l'intermédiaire d'un bouton (Button1), je souhaite enregistrer les données que je saisis dans les TextBox ( 1 à 5 ) dans un fichier Diagramme rosace [ par plume_12 ] Bonjour,Je dois faire un petit programme avec Visual Basic, mais étant débutante, j'ai vraiment du mal !Mon travail consiste à récupérer des données e Lire un fichier texte et récupérer son contenu dans excel [ par olivier857 ] Bonjour à tous,Je me pose 2 questions :1ère :Comment lire un Fichier Texte ligne par ligne et le mettre dans une Feuille Excel ?2ème :Comment gérer un


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,796 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.