cs_nirega
Messages postés58Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention14 janvier 2008
-
4 juin 2007 à 18:47
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
4 juin 2007 à 20:29
bonjour,
j'ai fais un code pour ecrire dans un fichier rtf, mais j'ai un petit probleme que je ne vois pas.
voici le code :
For i = 0 To List2.ListCount - 1
'fait la lecture d'un fichier rtf en mode binary dans la fonction ReadAllLines
ReadAllLines MonPath & "" & List2.List(i), aMesLignes
'Append au lieu de Output --- ouvre ton fichier en écriture et place le curseur a la fin du fichier.
If i = 0 Then
Open myfolder & fichier & ".rtf" For Append As iFile
End If
For y = 0 To UBound(aMesLignes)
Print #iFile, aMesLignes(y)
Next y
Print #iFile, vbNewLine
Next i
Close iFile
je fais une boucle car il peut avoir plus d'un fichier contenue dans mon List2.
mon but est de lire un fichier (a) et de coller son contenue dans un autre fichier (b)
et de lire un autre fichier (c) et de recoller le contenue dans le fichier (b) a la suite, et c'est la raison que j'ouvre le nouveau fichier en mode Append.
mais le probleme est qu'il ne colle qu'un fichier au lieu de deux dans mon nouveau fichier !!!!
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 4 juin 2007 à 20:29
Salut
Déjà, je commencerai par sortir le Open du fichier destination des boucles --> Ouvre-le avant de commencer ta boucle i
Dans ta fonction ReadAllLines, es-tu sûr de récupérer les données sous forme de lignes dans le tableau aMesLignes ?
Vérifie-le car le code que tu as collé est correct
Personnellement, je ne me risquerai pas à additionner des fichiers RTF comme ça.
Les fichiers RTF ont quelques lignes d'entête définissant les polices utilisées, les tailles de fontes, les définitions de couleurs etc ...
En additionnant les fichiers comme tu le fais, tu vas retrouver des entêtes en plein milieu des données, ça risque de donner des choses bizarres !
C'est d'ailleurs peut-être ça qui te donne l'impression que ça ne marche pas !
Il vaudrait mieux, je pense, transiter par des objets RichTextBox (RTB) que tu peux mettre en Visible = False pour le pas perturber l'affichage de ton application :
Tu charges ton premier fichier dans RTB0
RTB0.LoadFile monFichierDestination, RichTextLib.LoadSaveConstants.rtfRTF
Tu charges le suivant dans RTB1
RTB0.LoadFile monFichierACopier, RichTextLib.LoadSaveConstants.rtfRTF
puis tu recopie les données de l'un vers l'autre :
RTB1.SelStart = 0
RTB1.SelLength = Len(RTB1.Text)
RTB0.SelStart = Len(RTB0.Text)
RTB0.SelText = RTB1.SelText
ou qqchose comme ça
Au fichier suivant, tu recommences en chargeant RTB1 avec le fichier suivant ...
Ensuite, facile de sauvegarder l'ensemble correctement avec
RTB0.SaveFile monFichier, RichTextLib.LoadSaveConstants.rtfRTF
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)