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');
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.
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 ...).
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.
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 ?
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).
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 :)
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;
}
_________________________
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.
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]