Richedit et texte formatté

cs_txo Messages postés 31 Date d'inscription vendredi 5 mars 2004 Statut Membre Dernière intervention 15 avril 2007 - 15 avril 2007 à 13:40
manu1506 Messages postés 54 Date d'inscription jeudi 13 novembre 2003 Statut Membre Dernière intervention 25 avril 2012 - 6 juin 2007 à 16:17
Bonjour,

Je souhaite afficher dans un richedit un texte formatté je ne sais pas de quel format il s'agit voici un extrait du fichier :

-------------
VER2
246@48@300@60@1@#100-1@0@0|313@125@387@136@1@#100-2@0@0|110@183@168@193@1@#100-3@0@0|141@240@182@250@1@#100-4@330@86
{\rtf1\ansi\deff0\deftab720{\fonttbl{\f0\fnil MS Sans Serif;}{\f1\froman\fcharset2{\*\fname Symbol;}MT Symbol;}{\f2\fswiss\fcharset1 MS Sans Serif;}{\f3\fswiss\fcharset1 MS Sans Serif;}{\f4\froman\fprq2 Times New Roman;}{\f5\froman\fprq2 Benguiat Bk BT;}{\f6\fswiss\fprq2\fcharset238 System;}{\f7\froman\fprq2\fcharset238{\*\fname Times New Roman;}Times New Roman CE;}}
----------------

Voila donc en gros je souhaite que ce texte s'affiche tel que le souhaiterais le formattage.
De plus, connaissez vous un soft permmettant d'éditer de tels fichier simplement?

Merci

6 réponses

florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
15 avril 2007 à 13:53
Hello !

On dirait bien un fichier rtf donc logiquement, tu peux le charger dans un TRichEdit en faisant RichEdit1.Lines.LoadFromFile('C:\Monfichier.rtf');

Pour l'éditer, tu peux utiliser WordPad fourni avec Windows.

A+
Flo
0
cs_txo Messages postés 31 Date d'inscription vendredi 5 mars 2004 Statut Membre Dernière intervention 15 avril 2007
15 avril 2007 à 15:12
C'est éxactement ce que j'ai fait mais le probleme c'est que ca affiche toutes les "balises" avec et non le texte formaté
0
WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
15 avril 2007 à 15:48
Bonjour,

Essayes en supprimant ceci, qui à mon avis ne correspond pas à une partie de fichier rtf :
"VER2
246@48@300@60@1@#100-1@0@0|313@125@387@136@1@#100-2@0@0|110@183@168@193@1@#100-3@0@0|141@240@182@250@1@#100-4@330@86"

N.B. "{\rtf1\ansi\deff0\deftab720..." correspond bien au début d'un fichier rtf.

Cordialement.
<hr />"L'imagination est plus importante que le savoir." Albert Einstein
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
15 avril 2007 à 16:06
C'est ce que j'allais dire WhiteHippo, il me semblais bien que ce "truc" là ne faisait pas parti du rtf.
Pour le supprimer par code, sans modifier le fichier original, voila une petite procédure bien pratique :

procedure LoadStrangeRTF(const FileName: string; RE: TRichEdit);
var
  SL: TStringList;
  PosDebut: Integer;
begin
  SL := TStringList.Create;
  try
    {>> Chargement }
    SL.LoadFromFile(FileName);

    {>> Recherche du "vrai" début du fichier" }
    PosDebut : = Pos('{\rtf1\', SL.Text);

    {>> Enlève ce qu'il y a en trop si nécessaire }
    if PosDebut > 0 then
      SL.Text := Copy(SL.Text, PosDebut, Length(SL.Text) - PosDebut);

    {>> Assigne le texte au RichEdit }
    RE.Text := SL.Text;
  finally
    SL.Free;
  end;
end;

A appeler comme cela :

begin
  LoadStrangeRTF('E:\Mes documents\Document.rtf', RichEdit1);
end;

En espérant t'avoir aidé...





A+
Flo
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_txo Messages postés 31 Date d'inscription vendredi 5 mars 2004 Statut Membre Dernière intervention 15 avril 2007
15 avril 2007 à 16:52
Merci je test ca des que je peut
0
manu1506 Messages postés 54 Date d'inscription jeudi 13 novembre 2003 Statut Membre Dernière intervention 25 avril 2012
6 juin 2007 à 16:17
Et vérifie la propriété PlainText de ton RichEdit...
0
Rejoignez-nous