Pb création d'une page HTML avec texte formaté [Résolu]

vieuxpere 199 Messages postés samedi 3 janvier 2004Date d'inscription 17 décembre 2014 Dernière intervention - 17 janv. 2009 à 13:45 - Dernière réponse : vieuxpere 199 Messages postés samedi 3 janvier 2004Date d'inscription 17 décembre 2014 Dernière intervention
- 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');
Afficher la suite 

Votre réponse

14 réponses

Bacterius 3869 Messages postés samedi 22 décembre 2007Date d'inscription 3 juin 2016 Dernière intervention - 18 janv. 2009 à 20:26
+3
Utile
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 !
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Bacterius
Bacterius 3869 Messages postés samedi 22 décembre 2007Date d'inscription 3 juin 2016 Dernière intervention - 17 janv. 2009 à 15:31
0
Utile
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 !
Commenter la réponse de Bacterius
vieuxpere 199 Messages postés samedi 3 janvier 2004Date d'inscription 17 décembre 2014 Dernière intervention - 17 janv. 2009 à 16:19
0
Utile
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. 
Commenter la réponse de vieuxpere
Bacterius 3869 Messages postés samedi 22 décembre 2007Date d'inscription 3 juin 2016 Dernière intervention - 17 janv. 2009 à 16:26
0
Utile
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 !
Commenter la réponse de Bacterius
vieuxpere 199 Messages postés samedi 3 janvier 2004Date d'inscription 17 décembre 2014 Dernière intervention - 17 janv. 2009 à 19:15
0
Utile
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 ?
Commenter la réponse de vieuxpere
Bacterius 3869 Messages postés samedi 22 décembre 2007Date d'inscription 3 juin 2016 Dernière intervention - 17 janv. 2009 à 19:55
0
Utile
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 !
Commenter la réponse de Bacterius
Bacterius 3869 Messages postés samedi 22 décembre 2007Date d'inscription 3 juin 2016 Dernière intervention - 17 janv. 2009 à 19:57
0
Utile
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 !
Commenter la réponse de Bacterius
vieuxpere 199 Messages postés samedi 3 janvier 2004Date d'inscription 17 décembre 2014 Dernière intervention - 17 janv. 2009 à 21:32
0
Utile
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 ?
Commenter la réponse de vieuxpere
Bacterius 3869 Messages postés samedi 22 décembre 2007Date d'inscription 3 juin 2016 Dernière intervention - 17 janv. 2009 à 21:48
0
Utile
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 !
Commenter la réponse de Bacterius
vieuxpere 199 Messages postés samedi 3 janvier 2004Date d'inscription 17 décembre 2014 Dernière intervention - 18 janv. 2009 à 19:42
0
Utile
Merci de ta réponse mais je n'arrive pas à tester ton code de quels composant dépendent "CreateHTMLFragment" et "exportastext" ?
Commenter la réponse de vieuxpere
vieuxpere 199 Messages postés samedi 3 janvier 2004Date d'inscription 17 décembre 2014 Dernière intervention - 18 janv. 2009 à 20:00
0
Utile
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');
Commenter la réponse de vieuxpere
Bacterius 3869 Messages postés samedi 22 décembre 2007Date d'inscription 3 juin 2016 Dernière intervention - 18 janv. 2009 à 20:15
0
Utile
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 !
Commenter la réponse de Bacterius
vieuxpere 199 Messages postés samedi 3 janvier 2004Date d'inscription 17 décembre 2014 Dernière intervention - 18 janv. 2009 à 20:22
0
Utile
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
Commenter la réponse de vieuxpere
vieuxpere 199 Messages postés samedi 3 janvier 2004Date d'inscription 17 décembre 2014 Dernière intervention - 18 janv. 2009 à 20:50
0
Utile
Ok en tous cas je te remercie beaucoup pour tes infos.
Commenter la réponse de vieuxpere

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.