Ecriture en couleur dans un fichier

Résolu
LukeSkywalker67 Messages postés 20 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 21 août 2006 - 5 janv. 2006 à 12:01
LukeSkywalker67 Messages postés 20 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 21 août 2006 - 5 janv. 2006 à 13:11
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

ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
5 janv. 2006 à 12:51
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
LukeSkywalker67 Messages postés 20 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 21 août 2006
5 janv. 2006 à 13:11
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.
0
Rejoignez-nous