Ecriture en couleur dans un fichier [Résolu]

Signaler
Messages postés
20
Date d'inscription
vendredi 18 mars 2005
Statut
Membre
Dernière intervention
21 août 2006
-
Messages postés
20
Date d'inscription
vendredi 18 mars 2005
Statut
Membre
Dernière intervention
21 août 2006
-
Bonjour à tous,
Je cherche une solution pour écrire du texte en couleur dans un fichier sans passer par
un objet RichTextBox. En effet mon texte à écrire peut être très long
(> 1 Méga) et la procédure SaveFile du RichTextBox n'est pas adaptée dans mon cas
(le temps de traitement devient trop long).

Merci d'avance.

2 réponses

Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
22
Tu ne pose pas le problème correctement.

Quelques explications :
Les fichiers, par définition, ne sont qu'une suite d'octets. Lorsque ces octets sont humainement interprétables sous forme de caractères ASCII, on parle de fichier texte. Texte brut donc puisque chaque octet du fichier est un caractère. Mais ce type de fichiers (.txt [text brut]) ne sont pas prévu pour colorer du texte... Pour ajouter des attributs à du texte (coloration, polices différentes, graisse, italique, ...) il faut ajouter des balises (qu'importe la forme). Autrement dit, faire en sorte que certaines chaines de caractères introduisent un argument : par exemple, on peut considérer que "*B texte *B" permet de graisser le texte mis entre ces balises. Alors ici, bien sûr, c'est moi qui ai inventé cette balise. Mais en réalité, il y des formats de fichiers "standard" pour faire ça. Citons le RTF (le plus basique d'entre eux), le .DOC (de Word), ...
Mais attention, là ce ne sont plus de simples fichiers texte (brut) !!! Non, pour que la couleur (ou les autres attributs) puisse s'afficher il faut que le logiciel qui lit les octets, les interprêtes (détecte les balises) et affiche ce qu'il faut.

Donc, il faut bel et bien utiliser des composants spécifiques en fonction du format à lire!!!
Si le RTB (pour les .TXT et .RTF) ne te convient pas, il n'y a pas beaucoup d'autres solutions que d'intégrer le composant Word dans ton projet!!!

En tous les cas, ce n'est pas avec le simple TextBox que tu mettras de la couleur à du texte!!! Cependant, il y a quelques sources (a toi de chercher) qui, via des APIs, arrivent à colorer ce qui, à la base, ne pouvait pas l'être. Mais outre la "complexité" certaine de ces techniques, elles ne sont que des "combines" par forcément très fiables!

Sinon, l'autre solution (puisque, visiblement, tu trouves RTB trop lent !!!) serait de récupérer le code RTF (cf. la propriété spécifique) dans une variable puis de l'enregistrer manuellement dans un fichier d'une traite via l'instruction "Open" en mode "Binary".
Pour ce genre de pratiques, je te laisse te référer aux diverses sources d'ici.

Est-ce que celà répond à ta question ???

Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Messages postés
20
Date d'inscription
vendredi 18 mars 2005
Statut
Membre
Dernière intervention
21 août 2006

Merci pour toutes ces précisions ScSami.
La solution le plus pratique serait d'inserer le code RTF dans le fichier.
Je vais essayer de creuser de ce côté-là.
En tout cas merci d'avoir pris du temps d'expliquer tout ça.

Bye.