vieuxpere
Messages postés195Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention17 décembre 2014
-
17 janv. 2009 à 13:45
vieuxpere
Messages postés195Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention17 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');
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 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.
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 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 ...).
vieuxpere
Messages postés195Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention17 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.
vieuxpere
Messages postés195Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention17 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 ?
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 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).
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 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 :)
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 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;
}
_________________________
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 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.
vieuxpere
Messages postés195Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention17 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]