écrire dans un fichier .rtf

cs_nirega Messages postés 58 Date d'inscription dimanche 17 février 2002 Statut Membre Dernière intervention 14 janvier 2008 - 4 juin 2007 à 18:47
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 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 !!!!

svp de me montrer le droit chemin a utilisé
merci

nirega

1 réponse

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
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)
0