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

Signaler
Messages postés
939
Date d'inscription
vendredi 25 octobre 2002
Statut
Membre
Dernière intervention
27 janvier 2009
-
Messages postés
2
Date d'inscription
lundi 10 septembre 2007
Statut
Membre
Dernière intervention
15 novembre 2007
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43466-creation-d-un-fichier-a-partir-de-plusieurs-fichier-pour-eviter-les-copier-coller

Messages postés
2
Date d'inscription
lundi 10 septembre 2007
Statut
Membre
Dernière intervention
15 novembre 2007

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.
Messages postés
406
Date d'inscription
lundi 2 décembre 2002
Statut
Membre
Dernière intervention
25 janvier 2014

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

ya plus de probleme .
Messages postés
12
Date d'inscription
lundi 7 mai 2007
Statut
Membre
Dernière intervention
16 juillet 2007

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+
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
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...)
Afficher les 13 commentaires