OVH Cloud OVH Cloud

RTF - HTML

7 réponses
Avatar
Mas Fabien
bonjour, dans un precedent post (2 ou 3 mois) j'avais vu une fonction
permettant de passer du RTF au html
quelqu'un pourait il me redonner ces posts (et les fonctions ..)

7 réponses

Avatar
Roumegou Eric
Mas Fabien a présenté l'énoncé suivant :
bonjour, dans un precedent post (2 ou 3 mois) j'avais vu une fonction
permettant de passer du RTF au html
quelqu'un pourait il me redonner ces posts (et les fonctions ..)



tu as mon composant et son source sur windasso; mais attention c'est
limité à de la saisie dans un superchamps.
c'est pas un convertisseur qui couvre tous les cas.
Sinon il y a http://genosoft.surf-valley.com/
mais il faut payer pour voir et j'ai pas vu.

sinon sur le site de romu, il y a ça
http://rbesset.net/modules/mydownloads/singlefile.php?lidd

tiens moi au courant SVP si c'est bien.

--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Mas Fabien
Salut,
j'utilise uen vesion amelioree de ton code, pour que la compatibilite soit
accru avec WD 8
j'ai essaye le code de http://genosoft.surf-valley.com/ mais je n'en etait
pas entierement satisfait
Quant au SENhtml, il ne me traduit pas les couleurs ... etrange ...

merci,
Fabien :)


"Roumegou Eric" a écrit dans le message de news:

Mas Fabien a présenté l'énoncé suivant :
bonjour, dans un precedent post (2 ou 3 mois) j'avais vu une fonction
permettant de passer du RTF au html
quelqu'un pourait il me redonner ces posts (et les fonctions ..)



tu as mon composant et son source sur windasso; mais attention c'est
limité à de la saisie dans un superchamps.
c'est pas un convertisseur qui couvre tous les cas.
Sinon il y a http://genosoft.surf-valley.com/
mais il faut payer pour voir et j'ai pas vu.

sinon sur le site de romu, il y a ça
http://rbesset.net/modules/mydownloads/singlefile.php?lidd

tiens moi au courant SVP si c'est bien.

--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)



Avatar
Roumegou Eric
Mas Fabien a émis l'idée suivante :
Salut,
j'utilise uen vesion amelioree de ton code, pour que la compatibilite soit
accru avec WD 8



il faudrait le publier sur windasso et en faire un composant.


j'ai essaye le code de http://genosoft.surf-valley.com/ mais je n'en etait
pas entierement satisfait
Quant au SENhtml, il ne me traduit pas les couleurs ... etrange ...

merci,
Fabien :)


"Roumegou Eric" a écrit dans le message de news:

Mas Fabien a présenté l'énoncé suivant :
bonjour, dans un precedent post (2 ou 3 mois) j'avais vu une fonction
permettant de passer du RTF au html
quelqu'un pourait il me redonner ces posts (et les fonctions ..)



tu as mon composant et son source sur windasso; mais attention c'est limité
à de la saisie dans un superchamps.
c'est pas un convertisseur qui couvre tous les cas.
Sinon il y a http://genosoft.surf-valley.com/
mais il faut payer pour voir et j'ai pas vu.

sinon sur le site de romu, il y a ça
http://rbesset.net/modules/mydownloads/singlefile.php?lidd

tiens moi au courant SVP si c'est bien.

-- Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)






--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Geno
salut,

cela m'intéresse, je pourrais savoir quelles sont les défaut du composant.

Aujourd'hui je l'utilise dans mes logiciels (en de mail HTML, génération de
FAQ, éditeur d'aide RTF/HTML, ...)
Des évolutions ont sûrement étaient apportées depuis votre installation.

Geno

"Mas Fabien" a écrit dans le message de news:
415a7985$0$657$
Salut,
j'utilise uen vesion amelioree de ton code, pour que la compatibilite soit
accru avec WD 8
j'ai essaye le code de http://genosoft.surf-valley.com/ mais je n'en


etait
pas entierement satisfait
Quant au SENhtml, il ne me traduit pas les couleurs ... etrange ...

merci,
Fabien :)


"Roumegou Eric" a écrit dans le message de news:

> Mas Fabien a présenté l'énoncé suivant :
>> bonjour, dans un precedent post (2 ou 3 mois) j'avais vu une fonction
>> permettant de passer du RTF au html
>> quelqu'un pourait il me redonner ces posts (et les fonctions ..)
>
> tu as mon composant et son source sur windasso; mais attention c'est
> limité à de la saisie dans un superchamps.
> c'est pas un convertisseur qui couvre tous les cas.
> Sinon il y a http://genosoft.surf-valley.com/
> mais il faut payer pour voir et j'ai pas vu.
>
> sinon sur le site de romu, il y a ça
> http://rbesset.net/modules/mydownloads/singlefile.php?lidd
>
> tiens moi au courant SVP si c'est bien.
>
> --
> Eric Roumégou
> http://cerbermail.com/?TSoulBerPA
> (cliquez sur le lien ci-dessus pour me contacter en privé)
>




Avatar
Mas Fabien
le principal defaut etait sous Windev 8, quand on applique un style
particulier sur le superchamp RTF
la des balises indesirables apparaissaient ..

Voila la fonction ToHTML que j'utilise :
FONCTION ToHTML(pCh)

pos,posdeb,posfin sont des entiers
i,imax,j,jmax,nbcolor,tailleCh,tailleCh2 sont des entiers
chrech,wch,wch2,wch3 est chaîne
parag,font,colHexa est chaîne
nouvelle est chaîne
pasfermee est un booléen
wpolice est chaîne
//ajout ad
Avirer est une chaîne
positionFin est un entier
ad1,ad2,ad3 est un entier

//nouvelle =TronqueDernierCaractere(SansEspace(pch),3)
nouvelle=SansEspace(pCh)

SI ChaîneOccurrence(nouvelle,"'b7tab",SansCasse)>0 OU
ChaîneOccurrence(nouvelle,"<li>",SansCasse)>0 ALORS
wpolice="{fonttbl{f0fswissfprq2fcharset0Arial;}{f1fromanfprq2fcharset2Symbol;}"SINON wpolice="{fonttbl{f0fswissfprq2fcharset0 Arial;}"FINwch="{rtf1ansiansicpg1252deff0deflang1036"+wpolice+"}"+RCnouvelle=Remplace(nouvelle,wch,"")nouvelle=Remplace(nouvelle,"viewkind4uc1","")//Table des couleurswch=ExtraitEntre(nouvelle,"{colortbl ;","}")SI wch<>"" ALORS // il y a des couleurs //wch2 est la table des couleurs wch2="{colortbl ;"+wch+"}"+RC //on efface la table des couleurs nouvelle=Remplace(nouvelle,wch2,"") // vire la table des couleurs //nombre de couleurs //chaque couleur : red green blue nbcolor=ChaîneOccurrence(wch,";")FIN//les alignements// recherche si les balises pardchrech="pardq"posdeb= Position(nouvelle,chrech)TANTQUE posdeb>0 tailleCh=Taille(chrech)+2 SELON Milieu(nouvelle,posdeb+Taille(chrech),1) CAS "c" parag="<p align=""center"">" CAS "r" parag="<p align=""right"">" CAS "l" parag="<p align=""left"">" CAS "j" parag="<p align=""justify"">" FIN // selon milieu(nouvelle,posdeb+taille(chrech),1) nouvelle=Gauche(nouvelle,posdeb-1)+parag+Milieu(nouvelle,posdeb+8) // et rajoute une balise de fin avant le prochain pard posfin=Position(nouvelle,"pard",posdeb) SI posfin=0 ALORS nouvelle=nouvelle+"</p>" SORTIR FIN nouvelle=Gauche(nouvelle,posfin-1)+"</p>"+Milieu(nouvelle,posfin) posdeb= Position(nouvelle,chrech,posfin)FIN //tantque posdeb>0nouvelle=Remplace(nouvelle,"pard","<p>")nouvelle=Remplace(nouvelle,"par"+RC+"f1'b7tabf0 ","<li>") //listenouvelle=Remplace(nouvelle,"f0fs20 ","") // première bornenouvelle=Remplace(nouvelle,"f0","") //nouvelle=Remplace(nouvelle,"fs24","fs20") // par défaut taille 3correspond à 12 si copier coller de wordnouvelle=Remplace(nouvelle,"bi","<strong><em>") // gras italiquenouvelle=Remplace(nouvelle,"b0i0","</em></strong>") // gras italiquenouvelle=Remplace(nouvelle, "b0", "</strong>") //bold finnouvelle=Remplace(nouvelle, "b", "<strong>") //boldnouvelle=Remplace(nouvelle, "i0", "</em>") //italique finnouvelle=Remplace(nouvelle, "i", "<em>") //italiquenouvelle=Remplace(nouvelle, "ulnone","</u>") //souligné finnouvelle=Remplace(nouvelle, "ul","<u>") //soulignénouvelle=Remplace(nouvelle, "par", "<br>") // retour ligne// recherche si des balises fs sont suivies de cf avant d'un autre fs oucf fspos=Position(nouvelle,"fs")TANTQUE pos>0 wch3=Milieu(nouvelle,pos,5) pasfermee=Vrai TANTQUE pasfermee posdeb=Position(nouvelle,"fs",pos+5) posfin=Position(nouvelle,"cf",pos+5) SI posdeb=posfin+4 ALORS // double tag, c'est Okay posfin=posdeb+1 FIN SI posdeb<>0 ALORS SI posfin<>0 ALORS SI posfin<posdeb ALORS nouvelle=Gauche(nouvelle,posfin+3)+wch3+Milieu(nouvelle,posfin+4) posdeb=posfin+4 pos=posdeb SINON pasfermeeúux FIN SINON pasfermeeúux FIN SINON pasfermeeúux posdeb=pos FIN FIN //fin TANTQUE pasfermee // recherche le suivant fs pos=Position(nouvelle,"fs",posdeb+5)FIN //tantque pos>0// recherche si des balises cf ne sont pas fermées avant le fs (mais pasds le cas des dbles tags)pos=Position(nouvelle,"cf")TANTQUE pos>0 wch3=Milieu(nouvelle,pos,4) pasfermee=Vrai TANTQUE pasfermee posdeb=Position(nouvelle,"cf",pos+4) SI Milieu(nouvelle,pos+5,3)="fs" ALORS posfin=Position(nouvelle,"fs",pos+10) SINON posfin=Position(nouvelle,"fs",pos+5) FIN SI posdeb<>0 ALORS SI posfin<>0 ALORS SI posfin<posdeb ALORS nouvelle=Gauche(nouvelle,posfin-1)+wch3+Milieu(nouvelle,posfin) posdeb=posfin+5 pos=posdeb SINON pasfermeeúux FIN SINON pasfermeeúux FIN SINON pasfermeeúux posdeb=pos FIN FIN //fin TANTQUE pasfermee // recherche le suivant fs pos=Position(nouvelle,"cf",posdeb+5)FIN //tantque pos>0POUR i=0 A nbcolor // traite les tags Gras ou Italique imbriqués dans les tags couleurs posdeb= Position(nouvelle,"cf"+i) TANTQUE posdeb>0 pos=posdeb+4 // quote ouvrante wch2="cf"+i+"<u><strong><em>fs";tailleCh=Taille(wch2) SI Milieu(nouvelle,posdeb,tailleCh)=wch2 ALORS pos=posdeb+tailleCh+2 nouvelle=Gauche(nouvelle,posdeb-1)+"cf"+i+"fs"+... Milieu(nouvelle,posdeb+tailleCh,2)+"<u><strong><em>"+Milieu(nouvelle,pos) FIN wch2="cf"+i+"<u><em>fs";tailleCh=Taille(wch2) SI Milieu(nouvelle,posdeb,tailleCh)=wch2 ALORS pos=posdeb+tailleCh+2 nouvelle=Gauche(nouvelle,posdeb-1)+"cf"+i+"fs"+... Milieu(nouvelle,posdeb+tailleCh,2)+"<u><em>"+Milieu(nouvelle,pos) FIN wch2="cf"+i+"<u><strong>fs";tailleCh=Taille(wch2) SI Milieu(nouvelle,posdeb,tailleCh)=wch2 ALORS pos=posdeb+tailleCh+2 nouvelle=Gauche(nouvelle,posdeb-1)+"cf"+i+"fs"+... Milieu(nouvelle,posdeb+tailleCh,2)+"<u><strong>"+Milieu(nouvelle,pos) FIN wch2="cf"+i+"<u>fs";tailleCh=Taille(wch2) SI Milieu(nouvelle,posdeb,tailleCh)=wch2 ALORS pos=posdeb+tailleCh+2 nouvelle=Gauche(nouvelle,posdeb-1)+"cf"+i+"fs"+... Milieu(nouvelle,posdeb+tailleCh,2)+"<u>"+Milieu(nouvelle,pos) FIN wch2="cf"+i+"<strong><em>fs";tailleCh=Taille(wch2) SI Milieu(nouvelle,posdeb,tailleCh)=wch2 ALORS pos=posdeb+tailleCh+2 nouvelle=Gauche(nouvelle,posdeb-1)+"cf"+i+"fs"+... Milieu(nouvelle,posdeb+tailleCh,2)+"<strong><em>"+Milieu(nouvelle,pos) FIN wch2="cf"+i+"<strong>fs";tailleCh=Taille(wch2) SI Milieu(nouvelle,posdeb,tailleCh)=wch2 ALORS pos=posdeb+tailleCh+2 nouvelle=Gauche(nouvelle,posdeb-1)+"cf"+i+"fs"+... Milieu(nouvelle,posdeb+tailleCh,2)+"<strong>"+Milieu(nouvelle,pos) FIN wch2="cf"+i+"<em>fs";tailleCh=Taille(wch2) SI Milieu(nouvelle,posdeb,tailleCh)=wch2 ALORS pos=posdeb+tailleCh+2 nouvelle=Gauche(nouvelle,posdeb-1)+"cf"+i+"fs"+... Milieu(nouvelle,posdeb+tailleCh,2)+"<em>"+Milieu(nouvelle,pos) FIN // quote fermante wch2="cf"+i+"</em></strong>fs";tailleCh=Taille(wch2) SI Milieu(nouvelle,posdeb,tailleCh)=wch2 ALORS pos=posdeb+tailleCh+2 nouvelle=Gauche(nouvelle,posdeb-1)+"</em></strong>"+"cf"+i+"fs"+... Milieu(nouvelle,posdeb+tailleCh,2)+Milieu(nouvelle,pos) FIN wch2="cf"+i+"</strong>fs";tailleCh=Taille(wch2) SI Milieu(nouvelle,posdeb,tailleCh)=wch2 ALORS pos=posdeb+tailleCh+2 nouvelle=Gauche(nouvelle,posdeb-1)+"</strong>"+"cf"+i+"fs"+... Milieu(nouvelle,posdeb+tailleCh,2)+Milieu(nouvelle,pos) FIN wch2="cf"+i+"</em>fs";tailleCh=Taille(wch2) SI Milieu(nouvelle,posdeb,tailleCh)=wch2 ALORS pos=posdeb+tailleCh+2 nouvelle=Gauche(nouvelle,posdeb-1)+"</em>"+"cf"+i+"fs"+... Milieu(nouvelle,posdeb+tailleCh,2)+Milieu(nouvelle,pos) FIN posdeb= Position(nouvelle,"cf"+i,pos) FIN // tantque posdeb>0FIN//TRAITEMENT DES COULEURS// Traite les tags couleur taille qui se succèdentPOUR i=1 A nbcolor //wch2 est la chaine des couleurs repérée en début de code wch2=ExtraitChaîne(wch,i,";")+"" //test ecriture rouge ad1=ExtraitEntre(wch2,"red","") //extraction couleur SI ad1="255" ALORS // code couleur web colHexa="FF0000"+... NumériqueVersChaine(Val(ExtraitEntre(wch2,"green","")), "02X")+... NumériqueVersChaine(Val(ExtraitEntre(wch2,"blue","")), "02X") SINON // code couleur web colHexa=NumériqueVersChaine(Val(ExtraitEntre(wch2,"red","")),"02X")+... NumériqueVersChaine(Val(ExtraitEntre(wch2,"green","")), "02X")+... NumériqueVersChaine(Val(ExtraitEntre(wch2,"blue","")), "02X") FIN //ajout ad //ad1=ExtraitEntre(wch2,"red","") //extraction couleur //ad2=val(ad1,"02X") //conversion hexa //ad3=NumériqueVersChaine(ad2) //conversion chaine //début de la chaine qui change de couleur chrech="cf"+i+"fs" posdeb= Position(nouvelle,chrech) //AD pour comprendre //info(nouvelle,chrech,posdeb) posdeb=0 //mis à 0 car semble planter les changements de couleur TANTQUE posdeb>0 //nombre de caractère de la chaine de recherche tailleCh=Taille(chrech)+2 ; tailleCh2=tailleCh //extrait dans nouvelle : SI Milieu(nouvelle,posdeb+tailleCh,1)=" " ALORS tailleCh2++ SELON Milieu(nouvelle,posdeb+4,5) CAS "fs12" font="<font color="""+colHexa+""" size=""1"">" CAS "fs16" font="<font color="""+colHexa+""" size=""2"">" CAS "fs20" font="<font color="""+colHexa+""" size=""3"">" CAS "fs28" font="<font color="""+colHexa+""" size=""4"">" CAS "fs32" font="<font color="""+colHexa+""" size=""5"">" CAS "fs40" font="<font color="""+colHexa+""" size=""6"">" CAS "fs56" font="<font color="""+colHexa+""" size=""7"">" FIN //selon milieu(nouvelle,posdeb+5) nouvelle=Gauche(nouvelle,posdeb-1)+font+Milieu(nouvelle,posdeb+tailleCh2) // et rajoute une balise de fin avant le prochain cf posfin=Position(nouvelle,"cf",posdeb) SI posfin=0 ALORS nouvelle=nouvelle+"</font>" SORTIR FIN SI Milieu(nouvelle,posfin,tailleCh)="cf0fs20" ALORS // retour caractère normal, il ne faut pas rouvrir de balise font nouvelle=Gauche(nouvelle,posfin-1)+"</font>"+Milieu(nouvelle,posfin+tailleCh2) SINON nouvelle=Gauche(nouvelle,posfin-1)+"</font>"+Milieu(nouvelle,posfin) FIN posdeb= Position(nouvelle,chrech,posfin) FIN //tantque posdeb>0 //changements effectifs des couleurs wch2=ExtraitChaîne(wch,i,";")+"" // code couleur web font="<font color="""+colHexa+""">" nouvelle=Remplace(nouvelle,"cf"+i+" ",font) nouvelle=Remplace(nouvelle,"cf"+i,font)FIN // pour i=1 a nbcolornouvelle=Remplace(nouvelle,"cf0 ","</font>") //avec espacenouvelle=Remplace(nouvelle,"cf0","</font>") // sans espace// balise de taillenouvelle=Remplace(nouvelle,"fs20 ","</font>") // par défaut taille3correspond à 10nouvelle=Remplace(nouvelle,"fs20","</font>") // par défaut taille3correspond à 10nouvelle=Remplace(nouvelle,"fs12 ","<font size=""1"">") // taille 1nouvelle=Remplace(nouvelle,"fs12","<font size=""1"">") // taille 1nouvelle=Remplace(nouvelle,"fs16 ","<font size=""2"">") // taille 2nouvelle=Remplace(nouvelle,"fs16","<font size=""2"">") // taille 2//nouvelle=remplace(nouvelle,"fs20","<font size=""3"">") // taille 3nouvelle=Remplace(nouvelle,"fs28 ","<font size=""4"">") // taille 4nouvelle=Remplace(nouvelle,"fs28","<font size=""4"">") // taille 4nouvelle=Remplace(nouvelle,"fs32 ","<font size=""5"">") // taille 5nouvelle=Remplace(nouvelle,"fs32","<font size=""5"">") // taille 5nouvelle=Remplace(nouvelle,"fs40 ","<font size=""6"">") // taille 6nouvelle=Remplace(nouvelle,"fs40","<font size=""6"">") // taille 6nouvelle=Remplace(nouvelle,"fs56 ","<font size=""7"">") // taille 7nouvelle=Remplace(nouvelle,"fs56","<font size=""7"">") // taille 7// y-a-t il des tags <font> non fermés (cas particulier que je n'arrive pasà éviter)nouvelle=Remplace(nouvelle,"</font></font>","</font>")nouvelle=TagNonFerme(nouvelle,"<font","</font>")// y-a-t il des tags <p> non fermésnouvelle=TagNonFerme(nouvelle,"<p>","</p>")//virer les images dans les textesAvirer=ExtraitEntre(nouvelle,"{pictwmetafile8","}")SI Avirer<>"" ALORS Avirer="{pictwmetafile8"+Avirer nouvelle=Remplace(nouvelle,Avirer,"IMAGE")FIN//tableaux wordAvirer=ExtraitEntre(nouvelle,"trowdtrgaph70","}")SI Avirer<>"" ALORS Avirer="trowdtrgaph70"+Avirer+"}" nouvelle=Remplace(nouvelle,Avirer,"GRAPHIQUE")FINnouvelle=Remplace(nouvelle,"'c6","")nouvelle=Remplace(nouvelle,"'c2","")nouvelle=Remplace(nouvelle,"'c5","")nouvelle=Remplace(nouvelle,"'c4","")nouvelle=Remplace(nouvelle,"'d0","")nouvelle=Remplace(nouvelle,"'ca","")nouvelle=Remplace(nouvelle,"'cb","")nouvelle=Remplace(nouvelle,"'ce","")nouvelle=Remplace(nouvelle,"'cf","")nouvelle=Remplace(nouvelle,"'d3","&Oacute;")nouvelle=Remplace(nouvelle,"'d2","&Ograve;")nouvelle=Remplace(nouvelle,"'d5","&Otilde;")nouvelle=Remplace(nouvelle,"'da","&Uacute;")nouvelle=Remplace(nouvelle,"'cb","&Ucirc;")nouvelle=Remplace(nouvelle,"'dc","&Uuml;")nouvelle=Remplace(nouvelle,"'e1","&aacute;")nouvelle=Remplace(nouvelle,"'e6","&aelig;")nouvelle=Remplace(nouvelle,"'e5","&aring;")nouvelle=Remplace(nouvelle,"'e4","&auml;")nouvelle=Remplace(nouvelle,"'e9","&eacute;")nouvelle=Remplace(nouvelle,"'e8","&egrave;")nouvelle=Remplace(nouvelle,"'eb","&euml;")nouvelle=Remplace(nouvelle,"'ee","&icirc;")nouvelle=Remplace(nouvelle,"'ef","&iuml;")nouvelle=Remplace(nouvelle,"'f3","&oacute;")nouvelle=Remplace(nouvelle,"'f2","&ograve;")nouvelle=Remplace(nouvelle,"'f5","&otilde;")nouvelle=Remplace(nouvelle,"'df","&szlig;")nouvelle=Remplace(nouvelle,"'f9","&ugrave;")nouvelle=Remplace(nouvelle,"'fd","&yacute;")nouvelle=Remplace(nouvelle,"'c1","&Aacute;")nouvelle=Remplace(nouvelle,"'c0","&Agrave;")nouvelle=Remplace(nouvelle,"'c3","&Atilde;")nouvelle=Remplace(nouvelle,"'c7","&Ccedil;")nouvelle=Remplace(nouvelle,"'c9","&Eacute;")nouvelle=Remplace(nouvelle,"'c8","&Egrave;")nouvelle=Remplace(nouvelle,"'cd","&Iacute;")nouvelle=Remplace(nouvelle,"'cc","&Igrave;")nouvelle=Remplace(nouvelle,"'d1","&Ntilde;")nouvelle=Remplace(nouvelle,"'d4","&Ocirc;")nouvelle=Remplace(nouvelle,"'d8","&Oslash;")nouvelle=Remplace(nouvelle,"'d6","&Ouml;")nouvelle=Remplace(nouvelle,"'de","&THORN;")nouvelle=Remplace(nouvelle,"'d9","&Ugrave;")nouvelle=Remplace(nouvelle,"'dd","&Yacute;")nouvelle=Remplace(nouvelle,"'e2","&acirc;")nouvelle=Remplace(nouvelle,"'e0"," &agrave;")nouvelle=Remplace(nouvelle,"'e3"," &atilde;")nouvelle=Remplace(nouvelle,"'e7","&ccedil;")nouvelle=Remplace(nouvelle,"'ea","&ecirc;")nouvelle=Remplace(nouvelle,"'f0","&eth;")nouvelle=Remplace(nouvelle,"'ed","&iacute;")nouvelle=Remplace(nouvelle,"'ec","&igrave;")nouvelle=Remplace(nouvelle,"'f1","&ntilde;")nouvelle=Remplace(nouvelle,"'f4","&ocirc;")nouvelle=Remplace(nouvelle,"'f8","&oslash;")nouvelle=Remplace(nouvelle,"'f6","&ouml;")nouvelle=Remplace(nouvelle,"'fe","&thorn;")nouvelle=Remplace(nouvelle,"'fb","&ucirc;")nouvelle=Remplace(nouvelle,"'fc","&uuml;")nouvelle=Remplace(nouvelle,"'ff","&yuml;")nouvelle=Remplace(nouvelle,"'8","&egrave;")nouvelle=Remplace(nouvelle,"'88","&agrave;")nouvelle=Remplace(nouvelle, "~", "")nouvelle=Remplace(nouvelle, "'b5", "µ")nouvelle=Remplace(nouvelle, "'b0", "°")nouvelle=Remplace(nouvelle, "'a3", "£")nouvelle=Remplace(nouvelle, "'a7", "§")nouvelle=Remplace(nouvelle, "'b2", "²")nouvelle=Remplace(nouvelle, "'a4", "¤")nouvelle=Remplace(nouvelle, "rquote", "'")//mouchard=mouchard+" Apres conversion RTF vers HTML"+rc+nouvelle+rc+rcpositionFin=Position(nouvelle,"}}")Avirer=Gauche(nouvelle,positionFin)nouvelle=Remplace(nouvelle,Avirer,"")nouvelle=Remplace(nouvelle,"}", "")nouvelle=Remplace(nouvelle,"f1", "")nouvelle=Remplace(nouvelle,"fs17", "")nouvelle=Remplace(nouvelle,"fs22", "")nouvelle=Remplace(nouvelle,"fs22f1", "")nouvelle=Remplace(nouvelle,"fs23", "")nouvelle=Remplace(nouvelle,"fs22fs23", "")nouvelle=Remplace(nouvelle,"uc1", "")nouvelle=Remplace(nouvelle,"lang1036", "")nouvelle=Remplace(nouvelle,"lang1033", "")nouvelle=Remplace(nouvelle,"'00", "")nouvelle=Remplace(nouvelle,"ltrpar","")nouvelle=Remplace(nouvelle,"<p>", "")nouvelle=Remplace(nouvelle,"</p>", "")nouvelle=Remplace(nouvelle,"f2", "")nouvelle=Remplace(nouvelle,"f3", "")nouvelle=Remplace(nouvelle,"'bb", "")nouvelle=Remplace(nouvelle,"'ab", "")nouvelle=Remplace(nouvelle,"'bb", "")nouvelle=Remplace(nouvelle,"tab", "")nouvelle=Remplace(nouvelle,"qc", "")//borne début et fin//nouvelle="<html><body>"+nouvelle+"</body></html>"//pour tester//nouvelle=wch2+colHexa+nouvellenouvelle=Remplace(nouvelle,RC,"")RENVOYER nouvelle"Geno" a écrit dans le message de news:cje7n0$1hdj$ salut,>> cela m'intéresse, je pourrais savoir quelles sont les défaut du composant.>> Aujourd'hui je l'utilise dans mes logiciels (en de mail HTML, générationde> FAQ, éditeur d'aide RTF/HTML, ...)> Des évolutions ont sûrement étaient apportées depuis votre installation.>> Geno>> "Mas Fabien" a écrit dans le message de news:> 415a7985$0$657$ Salut,>> j'utilise uen vesion amelioree de ton code, pour que la compatibilitesoit>> accru avec WD 8>> j'ai essaye le code de http://genosoft.surf-valley.com/ mais je n'en> etait>> pas entierement satisfait>> Quant au SENhtml, il ne me traduit pas les couleurs ... etrange ...>>>> merci,>> Fabien :)>>>>>> "Roumegou Eric" a écrit dans le message de news:>> > Mas Fabien a présenté l'énoncé suivant :>> >> bonjour, dans un precedent post (2 ou 3 mois) j'avais vu une fonction>> >> permettant de passer du RTF au html>> >> quelqu'un pourait il me redonner ces posts (et les fonctions ..)>> >>> > tu as mon composant et son source sur windasso; mais attention c'est>> > limité à de la saisie dans un superchamps.>> > c'est pas un convertisseur qui couvre tous les cas.>> > Sinon il y a http://genosoft.surf-valley.com/>> > mais il faut payer pour voir et j'ai pas vu.>> >>> > sinon sur le site de romu, il y a ça>> > http://rbesset.net/modules/mydownloads/singlefile.php?lidd>> >>> > tiens moi au courant SVP si c'est bien.>> >>> > -->> > Eric Roumégou>> > http://cerbermail.com/?TSoulBerPA>> > (cliquez sur le lien ci-dessus pour me contacter en privé)>> >>>>>>>
Avatar
Mas Fabien
Une nouvelle version qui gere mieux les sauts de ligne (mais pas encore
parfait...) en remplacant les <P> par des <div>

FONCTION ToHTML(pCh)

pos,posdeb,posfin sont des entiers
i,imax,j,jmax,nbcolor,tailleCh,tailleCh2 sont des entiers
chrech,wch,wch2,wch3 est chaîne
parag,font,colHexa est chaîne
nouvelle est chaîne
pasfermee est un booléen
wpolice est chaîne
//ajout ad
Avirer est une chaîne
positionFin est un entier
ad1,ad2,ad3 est un entier

//nouvelle =TronqueDernierCaractere(SansEspace(pch),3)
nouvelle=SansEspace(pCh)

SI ChaîneOccurrence(nouvelle,"'b7tab",SansCasse)>0 OU
ChaîneOccurrence(nouvelle,"<li>",SansCasse)>0 ALORS
wpolice="{fonttbl{f0fswissfprq2fcharset0Arial;}{f1fromanfprq2fcharset2Symbol;}"SINON wpolice="{fonttbl{f0fswissfprq2fcharset0 Arial;}"FINwch="{rtf1ansiansicpg1252deff0deflang1036"+wpolice+"}"+RCnouvelle=Remplace(nouvelle,wch,"")nouvelle=Remplace(nouvelle,"viewkind4uc1","")//Table des couleurswch=ExtraitEntre(nouvelle,"{colortbl ;","}")SI wch<>"" ALORS // il y a des couleurs //wch2 est la table des couleurs wch2="{colortbl ;"+wch+"}"+RC //on efface la table des couleurs nouvelle=Remplace(nouvelle,wch2,"") // vire la table des couleurs //nombre de couleurs //chaque couleur : red green blue nbcolor=ChaîneOccurrence(wch,";")FIN//les alignements// recherche si les balises pardchrech="pardq"posdeb= Position(nouvelle,chrech)//SERT A GERER LES ESPACESnouvelle=Remplace(nouvelle,"par"+RC+"pard","pard")TANTQUE posdeb>0 tailleCh=Taille(chrech)+2 SELON Milieu(nouvelle,posdeb+Taille(chrech),1) CAS "c" parag="<br><div align=""center"">" CAS "r" parag="<br><div align=""right"">" CAS "l" parag="<br><div align=""left"">" CAS "j" parag="<br><div align=""justify"">" FIN // selon milieu(nouvelle,posdeb+taille(chrech),1) nouvelle=Gauche(nouvelle,posdeb-1)+parag+Milieu(nouvelle,posdeb+8) // et rajoute une balise de fin avant le prochain pard posfin=Position(nouvelle,"pard",posdeb) SI posfin=0 ALORS //nouvelle=nouvelle+"</p>" nouvelle=nouvelle+"</div>" SORTIR FIN nouvelle=Gauche(nouvelle,posfin-1)+"</div>"+Milieu(nouvelle,posfin) posdeb= Position(nouvelle,chrech,posfin)FIN //tantque posdeb>0nouvelle=Remplace(nouvelle,"pard","<div align=""left"">")nouvelle=Remplace(nouvelle,"par"+RC+"f1'b7tabf0 ","<li>") //listenouvelle=Remplace(nouvelle,"f0fs20 ","") // première bornenouvelle=Remplace(nouvelle,"f0","") //nouvelle=Remplace(nouvelle,"fs24","fs20") // par défaut taille 3correspond à 12 si copier coller de wordnouvelle=Remplace(nouvelle,"bi","<strong><em>") // gras italiquenouvelle=Remplace(nouvelle,"b0i0","</em></strong>") // gras italiquenouvelle=Remplace(nouvelle, "b0", "</strong>") //bold finnouvelle=Remplace(nouvelle, "b", "<strong>") //boldnouvelle=Remplace(nouvelle, "i0", "</em>") //italique finnouvelle=Remplace(nouvelle, "i", "<em>") //italiquenouvelle=Remplace(nouvelle, "ulnone","</u>") //souligné finnouvelle=Remplace(nouvelle, "ul","<u>") //soulignénouvelle=Remplace(nouvelle, "par", "<br>") // retour ligne// recherche si des balises fs sont suivies de cf avant d'un autre fs oucf fspos=Position(nouvelle,"fs")TANTQUE pos>0 wch3=Milieu(nouvelle,pos,5) pasfermee=Vrai TANTQUE pasfermee posdeb=Position(nouvelle,"fs",pos+5) posfin=Position(nouvelle,"cf",pos+5) SI posdeb=posfin+4 ALORS // double tag, c'est Okay posfin=posdeb+1 FIN SI posdeb<>0 ALORS SI posfin<>0 ALORS SI posfin<posdeb ALORS nouvelle=Gauche(nouvelle,posfin+3)+wch3+Milieu(nouvelle,posfin+4) posdeb=posfin+4 pos=posdeb SINON pasfermeeúux FIN SINON pasfermeeúux FIN SINON pasfermeeúux posdeb=pos FIN FIN //fin TANTQUE pasfermee // recherche le suivant fs pos=Position(nouvelle,"fs",posdeb+5)FIN //tantque pos>0// recherche si des balises cf ne sont pas fermées avant le fs (mais pasds le cas des dbles tags)pos=Position(nouvelle,"cf")TANTQUE pos>0 wch3=Milieu(nouvelle,pos,4) pasfermee=Vrai TANTQUE pasfermee posdeb=Position(nouvelle,"cf",pos+4) SI Milieu(nouvelle,pos+5,3)="fs" ALORS posfin=Position(nouvelle,"fs",pos+10) SINON posfin=Position(nouvelle,"fs",pos+5) FIN SI posdeb<>0 ALORS SI posfin<>0 ALORS SI posfin<posdeb ALORS nouvelle=Gauche(nouvelle,posfin-1)+wch3+Milieu(nouvelle,posfin) posdeb=posfin+5 pos=posdeb SINON pasfermeeúux FIN SINON pasfermeeúux FIN SINON pasfermeeúux posdeb=pos FIN FIN //fin TANTQUE pasfermee // recherche le suivant fs pos=Position(nouvelle,"cf",posdeb+5)FIN //tantque pos>0POUR i=0 A nbcolor // traite les tags Gras ou Italique imbriqués dans les tags couleurs posdeb= Position(nouvelle,"cf"+i) TANTQUE posdeb>0 pos=posdeb+4 // quote ouvrante wch2="cf"+i+"<u><strong><em>fs";tailleCh=Taille(wch2) SI Milieu(nouvelle,posdeb,tailleCh)=wch2 ALORS pos=posdeb+tailleCh+2 nouvelle=Gauche(nouvelle,posdeb-1)+"cf"+i+"fs"+... Milieu(nouvelle,posdeb+tailleCh,2)+"<u><strong><em>"+Milieu(nouvelle,pos) FIN wch2="cf"+i+"<u><em>fs";tailleCh=Taille(wch2) SI Milieu(nouvelle,posdeb,tailleCh)=wch2 ALORS pos=posdeb+tailleCh+2 nouvelle=Gauche(nouvelle,posdeb-1)+"cf"+i+"fs"+... Milieu(nouvelle,posdeb+tailleCh,2)+"<u><em>"+Milieu(nouvelle,pos) FIN wch2="cf"+i+"<u><strong>fs";tailleCh=Taille(wch2) SI Milieu(nouvelle,posdeb,tailleCh)=wch2 ALORS pos=posdeb+tailleCh+2 nouvelle=Gauche(nouvelle,posdeb-1)+"cf"+i+"fs"+... Milieu(nouvelle,posdeb+tailleCh,2)+"<u><strong>"+Milieu(nouvelle,pos) FIN wch2="cf"+i+"<u>fs";tailleCh=Taille(wch2) SI Milieu(nouvelle,posdeb,tailleCh)=wch2 ALORS pos=posdeb+tailleCh+2 nouvelle=Gauche(nouvelle,posdeb-1)+"cf"+i+"fs"+... Milieu(nouvelle,posdeb+tailleCh,2)+"<u>"+Milieu(nouvelle,pos) FIN wch2="cf"+i+"<strong><em>fs";tailleCh=Taille(wch2) SI Milieu(nouvelle,posdeb,tailleCh)=wch2 ALORS pos=posdeb+tailleCh+2 nouvelle=Gauche(nouvelle,posdeb-1)+"cf"+i+"fs"+... Milieu(nouvelle,posdeb+tailleCh,2)+"<strong><em>"+Milieu(nouvelle,pos) FIN wch2="cf"+i+"<strong>fs";tailleCh=Taille(wch2) SI Milieu(nouvelle,posdeb,tailleCh)=wch2 ALORS pos=posdeb+tailleCh+2 nouvelle=Gauche(nouvelle,posdeb-1)+"cf"+i+"fs"+... Milieu(nouvelle,posdeb+tailleCh,2)+"<strong>"+Milieu(nouvelle,pos) FIN wch2="cf"+i+"<em>fs";tailleCh=Taille(wch2) SI Milieu(nouvelle,posdeb,tailleCh)=wch2 ALORS pos=posdeb+tailleCh+2 nouvelle=Gauche(nouvelle,posdeb-1)+"cf"+i+"fs"+... Milieu(nouvelle,posdeb+tailleCh,2)+"<em>"+Milieu(nouvelle,pos) FIN // quote fermante wch2="cf"+i+"</em></strong>fs";tailleCh=Taille(wch2) SI Milieu(nouvelle,posdeb,tailleCh)=wch2 ALORS pos=posdeb+tailleCh+2 nouvelle=Gauche(nouvelle,posdeb-1)+"</em></strong>"+"cf"+i+"fs"+... Milieu(nouvelle,posdeb+tailleCh,2)+Milieu(nouvelle,pos) FIN wch2="cf"+i+"</strong>fs";tailleCh=Taille(wch2) SI Milieu(nouvelle,posdeb,tailleCh)=wch2 ALORS pos=posdeb+tailleCh+2 nouvelle=Gauche(nouvelle,posdeb-1)+"</strong>"+"cf"+i+"fs"+... Milieu(nouvelle,posdeb+tailleCh,2)+Milieu(nouvelle,pos) FIN wch2="cf"+i+"</em>fs";tailleCh=Taille(wch2) SI Milieu(nouvelle,posdeb,tailleCh)=wch2 ALORS pos=posdeb+tailleCh+2 nouvelle=Gauche(nouvelle,posdeb-1)+"</em>"+"cf"+i+"fs"+... Milieu(nouvelle,posdeb+tailleCh,2)+Milieu(nouvelle,pos) FIN posdeb= Position(nouvelle,"cf"+i,pos) FIN // tantque posdeb>0FIN//TRAITEMENT DES COULEURS// Traite les tags couleur taille qui se succèdentPOUR i=1 A nbcolor //wch2 est la chaine des couleurs repérée en début de code wch2=ExtraitChaîne(wch,i,";")+"" //test ecriture rouge ad1=ExtraitEntre(wch2,"red","") //extraction couleur SI ad1="255" ALORS // code couleur web colHexa="FF0000"+... NumériqueVersChaine(Val(ExtraitEntre(wch2,"green","")), "02X")+... NumériqueVersChaine(Val(ExtraitEntre(wch2,"blue","")), "02X") SINON // code couleur web colHexa=NumériqueVersChaine(Val(ExtraitEntre(wch2,"red","")),"02X")+... NumériqueVersChaine(Val(ExtraitEntre(wch2,"green","")), "02X")+... NumériqueVersChaine(Val(ExtraitEntre(wch2,"blue","")), "02X") FIN //ajout ad //ad1=ExtraitEntre(wch2,"red","") //extraction couleur //ad2=val(ad1,"02X") //conversion hexa //ad3=NumériqueVersChaine(ad2) //conversion chaine //début de la chaine qui change de couleur chrech="cf"+i+"fs" posdeb= Position(nouvelle,chrech) //AD pour comprendre //info(nouvelle,chrech,posdeb) posdeb=0 //mis à 0 car semble planter les changements de couleur TANTQUE posdeb>0 //nombre de caractère de la chaine de recherche tailleCh=Taille(chrech)+2 ; tailleCh2=tailleCh //extrait dans nouvelle : SI Milieu(nouvelle,posdeb+tailleCh,1)=" " ALORS tailleCh2++ SELON Milieu(nouvelle,posdeb+4,5) CAS "fs12" font="<font color="""+colHexa+""" size=""1"">" CAS "fs16" font="<font color="""+colHexa+""" size=""2"">" CAS "fs20" font="<font color="""+colHexa+""" size=""3"">" CAS "fs28" font="<font color="""+colHexa+""" size=""4"">" CAS "fs32" font="<font color="""+colHexa+""" size=""5"">" CAS "fs40" font="<font color="""+colHexa+""" size=""6"">" CAS "fs56" font="<font color="""+colHexa+""" size=""7"">" FIN //selon milieu(nouvelle,posdeb+5) nouvelle=Gauche(nouvelle,posdeb-1)+font+Milieu(nouvelle,posdeb+tailleCh2) // et rajoute une balise de fin avant le prochain cf posfin=Position(nouvelle,"cf",posdeb) SI posfin=0 ALORS nouvelle=nouvelle+"</font>" SORTIR FIN SI Milieu(nouvelle,posfin,tailleCh)="cf0fs20" ALORS // retour caractère normal, il ne faut pas rouvrir de balise font nouvelle=Gauche(nouvelle,posfin-1)+"</font>"+Milieu(nouvelle,posfin+tailleCh2) SINON nouvelle=Gauche(nouvelle,posfin-1)+"</font>"+Milieu(nouvelle,posfin) FIN posdeb= Position(nouvelle,chrech,posfin) FIN //tantque posdeb>0 //changements effectifs des couleurs wch2=ExtraitChaîne(wch,i,";")+"" // code couleur web font="<font color="""+colHexa+""">" nouvelle=Remplace(nouvelle,"cf"+i+" ",font) nouvelle=Remplace(nouvelle,"cf"+i,font)FIN // pour i=1 a nbcolornouvelle=Remplace(nouvelle,"cf0 ","</font>") //avec espacenouvelle=Remplace(nouvelle,"cf0","</font>") // sans espace// balise de taillenouvelle=Remplace(nouvelle,"fs20 ","</font>") // par défaut taille3correspond à 10nouvelle=Remplace(nouvelle,"fs20","</font>") // par défaut taille3correspond à 10nouvelle=Remplace(nouvelle,"fs12 ","<font size=""1"">") // taille 1nouvelle=Remplace(nouvelle,"fs12","<font size=""1"">") // taille 1nouvelle=Remplace(nouvelle,"fs16 ","<font size=""2"">") // taille 2nouvelle=Remplace(nouvelle,"fs16","<font size=""2"">") // taille 2//nouvelle=remplace(nouvelle,"fs20","<font size=""3"">") // taille 3nouvelle=Remplace(nouvelle,"fs28 ","<font size=""4"">") // taille 4nouvelle=Remplace(nouvelle,"fs28","<font size=""4"">") // taille 4nouvelle=Remplace(nouvelle,"fs32 ","<font size=""5"">") // taille 5nouvelle=Remplace(nouvelle,"fs32","<font size=""5"">") // taille 5nouvelle=Remplace(nouvelle,"fs40 ","<font size=""6"">") // taille 6nouvelle=Remplace(nouvelle,"fs40","<font size=""6"">") // taille 6nouvelle=Remplace(nouvelle,"fs56 ","<font size=""7"">") // taille 7nouvelle=Remplace(nouvelle,"fs56","<font size=""7"">") // taille 7// y-a-t il des tags <font> non fermés (cas particulier que je n'arrive pasà éviter)nouvelle=Remplace(nouvelle,"</font></font>","</font>")nouvelle=TagNonFerme(nouvelle,"<font","</font>")// y-a-t il des tags <p> non fermésnouvelle=TagNonFerme(nouvelle,"<p>","</p>")//virer les images dans les textesAvirer=ExtraitEntre(nouvelle,"{pictwmetafile8","}")SI Avirer<>"" ALORS Avirer="{pictwmetafile8"+Avirer nouvelle=Remplace(nouvelle,Avirer,"IMAGE")FIN//tableaux wordAvirer=ExtraitEntre(nouvelle,"trowdtrgaph70","}")SI Avirer<>"" ALORS Avirer="trowdtrgaph70"+Avirer+"}" nouvelle=Remplace(nouvelle,Avirer,"GRAPHIQUE")FINnouvelle=Remplace(nouvelle,"'c6","")nouvelle=Remplace(nouvelle,"'c2","")nouvelle=Remplace(nouvelle,"'c5","")nouvelle=Remplace(nouvelle,"'c4","")nouvelle=Remplace(nouvelle,"'d0","")nouvelle=Remplace(nouvelle,"'ca","")nouvelle=Remplace(nouvelle,"'cb","")nouvelle=Remplace(nouvelle,"'ce","")nouvelle=Remplace(nouvelle,"'cf","")nouvelle=Remplace(nouvelle,"'d3","&Oacute;")nouvelle=Remplace(nouvelle,"'d2","&Ograve;")nouvelle=Remplace(nouvelle,"'d5","&Otilde;")nouvelle=Remplace(nouvelle,"'da","&Uacute;")nouvelle=Remplace(nouvelle,"'cb","&Ucirc;")nouvelle=Remplace(nouvelle,"'dc","&Uuml;")nouvelle=Remplace(nouvelle,"'e1","&aacute;")nouvelle=Remplace(nouvelle,"'e6","&aelig;")nouvelle=Remplace(nouvelle,"'e5","&aring;")nouvelle=Remplace(nouvelle,"'e4","&auml;")nouvelle=Remplace(nouvelle,"'e9","&eacute;")nouvelle=Remplace(nouvelle,"'e8","&egrave;")nouvelle=Remplace(nouvelle,"'eb","&euml;")nouvelle=Remplace(nouvelle,"'ee","&icirc;")nouvelle=Remplace(nouvelle,"'ef","&iuml;")nouvelle=Remplace(nouvelle,"'f3","&oacute;")nouvelle=Remplace(nouvelle,"'f2","&ograve;")nouvelle=Remplace(nouvelle,"'f5","&otilde;")nouvelle=Remplace(nouvelle,"'df","&szlig;")nouvelle=Remplace(nouvelle,"'f9","&ugrave;")nouvelle=Remplace(nouvelle,"'fd","&yacute;")nouvelle=Remplace(nouvelle,"'c1","&Aacute;")nouvelle=Remplace(nouvelle,"'c0","&Agrave;")nouvelle=Remplace(nouvelle,"'c3","&Atilde;")nouvelle=Remplace(nouvelle,"'c7","&Ccedil;")nouvelle=Remplace(nouvelle,"'c9","&Eacute;")nouvelle=Remplace(nouvelle,"'c8","&Egrave;")nouvelle=Remplace(nouvelle,"'cd","&Iacute;")nouvelle=Remplace(nouvelle,"'cc","&Igrave;")nouvelle=Remplace(nouvelle,"'d1","&Ntilde;")nouvelle=Remplace(nouvelle,"'d4","&Ocirc;")nouvelle=Remplace(nouvelle,"'d8","&Oslash;")nouvelle=Remplace(nouvelle,"'d6","&Ouml;")nouvelle=Remplace(nouvelle,"'de","&THORN;")nouvelle=Remplace(nouvelle,"'d9","&Ugrave;")nouvelle=Remplace(nouvelle,"'dd","&Yacute;")nouvelle=Remplace(nouvelle,"'e2","&acirc;")nouvelle=Remplace(nouvelle,"'e0"," &agrave;")nouvelle=Remplace(nouvelle,"'e3"," &atilde;")nouvelle=Remplace(nouvelle,"'e7","&ccedil;")nouvelle=Remplace(nouvelle,"'ea","&ecirc;")nouvelle=Remplace(nouvelle,"'f0","&eth;")nouvelle=Remplace(nouvelle,"'ed","&iacute;")nouvelle=Remplace(nouvelle,"'ec","&igrave;")nouvelle=Remplace(nouvelle,"'f1","&ntilde;")nouvelle=Remplace(nouvelle,"'f4","&ocirc;")nouvelle=Remplace(nouvelle,"'f8","&oslash;")nouvelle=Remplace(nouvelle,"'f6","&ouml;")nouvelle=Remplace(nouvelle,"'fe","&thorn;")nouvelle=Remplace(nouvelle,"'fb","&ucirc;")nouvelle=Remplace(nouvelle,"'fc","&uuml;")nouvelle=Remplace(nouvelle,"'ff","&yuml;")nouvelle=Remplace(nouvelle,"'8","&egrave;")nouvelle=Remplace(nouvelle,"'88","&agrave;")nouvelle=Remplace(nouvelle, "~", "")nouvelle=Remplace(nouvelle, "'b5", "µ")nouvelle=Remplace(nouvelle, "'b0", "°")nouvelle=Remplace(nouvelle, "'a3", "£")nouvelle=Remplace(nouvelle, "'a7", "§")nouvelle=Remplace(nouvelle, "'b2", "²")nouvelle=Remplace(nouvelle, "'a4", "¤")nouvelle=Remplace(nouvelle, "rquote", "'")//mouchard=mouchard+" Apres conversion RTF vers HTML"+rc+nouvelle+rc+rcpositionFin=Position(nouvelle,"}}")Avirer=Gauche(nouvelle,positionFin)nouvelle=Remplace(nouvelle,Avirer,"")nouvelle=Remplace(nouvelle,"}", "")nouvelle=Remplace(nouvelle,"f1", "")nouvelle=Remplace(nouvelle,"fs17", "")nouvelle=Remplace(nouvelle,"fs22", "")nouvelle=Remplace(nouvelle,"fs22f1", "")nouvelle=Remplace(nouvelle,"fs23", "")nouvelle=Remplace(nouvelle,"fs22fs23", "")nouvelle=Remplace(nouvelle,"uc1", "")nouvelle=Remplace(nouvelle,"lang1036", "")nouvelle=Remplace(nouvelle,"lang1033", "")nouvelle=Remplace(nouvelle,"'00", "")nouvelle=Remplace(nouvelle,"ltrpar","")nouvelle=Remplace(nouvelle,"<p>", "")nouvelle=Remplace(nouvelle,"</p>", "")nouvelle=Remplace(nouvelle,"f2", "")nouvelle=Remplace(nouvelle,"f3", "")nouvelle=Remplace(nouvelle,"'bb", "")nouvelle=Remplace(nouvelle,"'ab", "")nouvelle=Remplace(nouvelle,"'bb", "")nouvelle=Remplace(nouvelle,"tab", "")nouvelle=Remplace(nouvelle,"qc", "")// nouvelle=Remplace(nouvelle,RC,"")nouvelle=Remplace(nouvelle,"line", "<br>")RENVOYER nouvelle
Avatar
Roumegou Eric
Mas Fabien avait soumis l'idée :
FONCTION ToHTML(pCh)

pos,posdeb,posfin sont des entiers
i,imax,j,jmax,nbcolor,tailleCh,tailleCh2 sont des entiers
chrech,wch,wch2,wch3 est chaîne
parag,font,colHexa est chaîne
nouvelle est chaîne
pasfermee est un booléen
wpolice est chaîne
//ajout ad
Avirer est une chaîne
positionFin est un entier
ad1,ad2,ad3 est un entier

//nouvelle =TronqueDernierCaractere(SansEspace(pch),3)
nouvelle=SansEspace(pCh)

SI ChaîneOccurrence(nouvelle,"'b7tab",SansCasse)>0 OU
ChaîneOccurrence(nouvelle,"<li>",SansCasse)>0 ALORS


<CUT>
là cela devient inexploitable car il n'y a plus les retours lignes. Si
tu m'envoies la procedure en fichier joint, je pourrais la mettre en
téléchargement. (et eventuellement corriger mon composant)

--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)