Pb création d'une page HTML avec texte formaté

Résolu
vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014 - 17 janv. 2009 à 13:45
vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014 - 18 janv. 2009 à 20:50
Bonjour, je cherche à créer une page HTML qui affiche le contenu de mon Richedit, jusque là pas de problème avec le code ci-dessous.


Sauf que dans mon Richedit j'ai du texte gras, italique ou souligné, mais ça s'affiche en texte simple dans ma page HTML, auriez vous une idée, merci par avance,



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 




Voici le code que j'utilise :
Var TexteHTML:TStringList;  //TStringList hérite de TStrings


begin


TexteHTML:=TStringList.create;
TexteHTML.add('<HTML><HEAD><TITLE>Mon titre</TITLE></HEAD>');
TexteHTML.AddStrings(RichEdit1.Lines);   //ajoute toutes les lignes du mémo à la suite de mon TStrings
TexteHTML.add('</html>');
TexteHTML.SaveToFile('MaPage.html');

14 réponses

Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
18 janv. 2009 à 20:26
D'accord, je te l'enverrai demain soir (trop de problèmes internet ce soir, en plus je télécharge des musiques youtube en masse ...).
A demain donc ;) bonne soirée.

Cordialement, Bacterius !
3
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
17 janv. 2009 à 15:31
Evidemment : TStringList gère du texte simple.
Pour cela, il faudra parcourir ton richedit de la façon suivante :

Je scanne le début de mon richedit
Oh ! C'est du texte gras !
Vite, j'ajoute [bold] (ou quelque chose dans le genre)
Je continue jusqu'à ce que je trouve la fin du gras ...
Ah c'est devenu du texte simple ...
J'ajoute /bold

Etc ...

Après, ça devient récursif si ton texte contient du texte gras, et du texte souligné dans le texte gras, et du texte en italique lui-même dans le texte souligné ...

Bonne chance, va voir les algorithmes récursifs et les mots de contrôle HTML ([bold], [italic], etc ...).

Cordialement, Bacterius !
0
vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014
17 janv. 2009 à 16:19
Merci de ta réponse, mais je t'avoue qu'apres avoir scrutté le net "les algorithmes récursifs et les mots de contrôle HTML" je ne me sens pas beaucoup plus avancé, je ne sais pas trop où commencé...

As-tu un exemple de code à me suggerer pour me mettre sur la voie, merci beaucoup par avance. 
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
17 janv. 2009 à 16:26
Faut pas mettre tout en même temps dans le moteur google !
Regarde déjà cette page pour voir un peu ce que c'est que la récursivité :
http://fr.wikipedia.org/wiki/Algorithme_r%C3%A9cursif

Celle-là aussi : http://fr.wikiversity.org/wiki/Algorithmique_et_programmation/R%C3%A9cursivit%C3%A9/Algorithmes_r%C3%A9cursifs

Ensuite, regarde ce document :
http://www.startyourdev.com/HTML/Index.html
Il t'indiquera toutes les balises HTML, pour mettre en gras, en italique, etc ...

Lis-les déjà, et tu seras déjà 50% plus avancé ;)
Crois-moi, un travail bien documenté est un travail à moitié fini !

Cordialement, Bacterius !
0

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

Posez votre question
vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014
17 janv. 2009 à 19:15
Je suis aller voir les differentes balises qui existent et effectivement je commence à comprendre la problématique, mais au lieu de gerer ça  moi-même, n'y a t'il pas des composants qui permettent de générer automatiquement du HTML en fonction de la saisie accomplie ?

J'ai par exemple attendu parler de SynEdit est-ce que ça pourrait m'aider ?
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
17 janv. 2009 à 19:55
SynEdit c'est un colorateur ... il fait le contraire de ce que tu veux faire ^^'

Sinon il existe sûrement des composants gratuits pour la conversion RTF => HTML, mais il faudra les chercher.

Après une petite recherche, je trouve des DLLs qui font cela, mais c'est assez lourd de devoir prendre une DLL dans son application, de plus on ne sait pas ce qu'elles contiennent ...
Mais j'ai aussi trouvé ceci, et je n'arrive pas à voir si c'est payant ou gratuit, les sources ont l'air fournies, donc même si ils disent que ce n'est pas adaptable comme composant, tu peux eventuellement reprendre le code, t'en inspirer et faire ton propre code (attention ! pas de copier-coller).

Cordialement, Bacterius !
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
17 janv. 2009 à 19:57
Ah, si en effet il existe un composant dans SynEdit (je l'ai sur mon Delphi) qui peut eventuellement convertir un texte colorisé (donc RTF) en HTML : TSynExporterHTML ? Les sources sont fournies, télécharge donc SynEdit pour voir :)

Cordialement, Bacterius !
0
vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014
17 janv. 2009 à 21:32
J'ai testé SynExportHTML avec le code suivant  :

SynExporterHTML1.Highlighter:=SynEdit1.Highlighter;, ----
SynExporterHTML1.ExportAsText := TRUE;, ----
SynExporterHTML1.ExportAll(SynEdit1.Lines);, ----
SynExporterHTML1.SaveToFile('C:\demo.html');

Mais ça ne génére pas de fichier HTML avez-vous une idée ?
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
17 janv. 2009 à 21:48
Essaye ExportAsText := True et CreateHTMLFragment := True ?

Moi j'ai obtenu un fichier comme ceci, je présume que c'est du HTML, j'ai mis comme texte :
{
begin
var
MyFunction
function
procedure
LOl !
end;
}
_________________________

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="SynEdit HTML exporter" />
<style type="text/css">
<!--
body { color: #000000; background-color: #FFFFFF; }
.pas1-assembler { }
.pas1-character { }
.pas1-comment { font-style: italic; }
.pas1-float { }
.pas1-hexadecimal { }
.pas1-identifier { }
.pas1-number { }
.pas1-preprocessor { font-style: italic; }
.pas1-reservedword { font-weight: bold; }
.pas1-space { }
.pas1-string { }
.pas1-symbol { }
-->
</style>
</head>


begin
var
 MyFunction
  function
  procedure
  LOl !
end;





</html>
___________________________

C'est déjà un début ??
En tout cas les mots en gras passent ;)
Chez moi ça marche du tonnerre ;)

Cordialement, Bacterius !
0
vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014
18 janv. 2009 à 19:42
Merci de ta réponse mais je n'arrive pas à tester ton code de quels composant dépendent "CreateHTMLFragment" et "exportastext" ?
0
vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014
18 janv. 2009 à 20:00
Pardon, j'ai résolu mon souci ca compile par contre je ne génére toujours pas de fichier HTML voici mon code :


SynExporterHTML1.ExportAsText:=True;
SynExporterHTML1.CreateHTMLFragment :=True;
SynExporterHTML1.Highlighter:=SynEdit1.Highlighter;
SynExporterHTML1.ExportAsText := TRUE;
SynExporterHTML1.ExportAll(SynEdit1.Lines);
SynExporterHTML1.SaveToFile('C:\Users\Vieux Pere\Desktop\demo.html');
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
18 janv. 2009 à 20:15
Je ne comprends pas, moi ça me génère du texte balisé, qui ressemble fort à du HTML ! (clic droit sur le fichier => Ouvrir avec => Bloc-notes et tu verras.

Cordialement, Bacterius !
0
vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014
18 janv. 2009 à 20:22
Mon probleme c'est que ca me génére rien du tout, je ne vois pas apparaitre sur mon bureau de fichier html ou de fichier du tout.
Si ton teste marche bien, peux-tu m'envoyer les sources de ton test : [mailto:vieuxpere@orange.fr vieuxpere@orange.fr]

Merci par avance
0
vieuxpere Messages postés 195 Date d'inscription samedi 3 janvier 2004 Statut Membre Dernière intervention 17 décembre 2014
18 janv. 2009 à 20:50
Ok en tous cas je te remercie beaucoup pour tes infos.
0
Rejoignez-nous