CONVERTIR LE CONTENU D'UNE RICHTEXTBOX EN HTML (VB.NET)
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008
-
19 avril 2003 à 11:38
miloud -
26 mars 2015 à 23:56
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
jurion
Messages postés2Date d'inscriptionjeudi 21 juin 2007StatutMembreDernière intervention17 octobre 2008 17 oct. 2008 à 19:45
Euh petite erreur de derniere minute : remplacez "=" par ":" dans "text-align=". Voila :)
jurion
Messages postés2Date d'inscriptionjeudi 21 juin 2007StatutMembreDernière intervention17 octobre 2008 17 oct. 2008 à 19:44
Merci pour la source :)
Voila traduction en C# pour les faignant :)
public static string RichToHtml(RichTextBox Box)
{
string strHTML="";
string strColeur;
bool blnGras;
bool blnItalic;
string strPolice;
short shtTaille;
HorizontalAlignment hzAlign;
string strHzAlign="";
int lngDepartOriginal;
int lngTailleOriginal;
int intCount;
if (Box.Text.Length == 0) return strHTML;
lngDepartOriginal = 0;
lngTailleOriginal = Box.TextLength;
Box.Select(0, 1);
//Entete HTML
strHTML = "<HTML>";
strColeur = Box.SelectionColor.ToKnownColor().ToString();
blnGras = Box.SelectionFont.Bold;
blnItalic = Box.SelectionFont.Italic;
strPolice = Box.SelectionFont.FontFamily.Name;
hzAlign = Box.SelectionAlignment; if (hzAlign HorizontalAlignment.Left) strHzAlign "Left"; else if (hzAlign HorizontalAlignment.Center) strHzAlign "Center"; else if (hzAlign HorizontalAlignment.Right) strHzAlign "Right";
shtTaille = Convert.ToInt16( Box.SelectionFont.Size);
strHTML += "
";
if (blnGras)
{
strHTML += "";
}
if (blnItalic)
{
strHTML += "";
}
strHTML += Box.Text.Substring(0, 1);
//Boucle sur le reste du texte
for (intCount =2;intCount<=Box.Text.Length;intCount++) {
//Selection du caractere
Box.Select(intCount - 1, 1);
//Verifier et implementer si necessaire un changement de style
if ((Box.SelectionColor.ToKnownColor().ToString() != strColeur) || (Box.SelectionFont.FontFamily.Name != strPolice) || (Convert.ToInt16(Box.SelectionFont.Size) != shtTaille) || (Box.SelectionAlignment != hzAlign))
{ if (Box.SelectionAlignment HorizontalAlignment.Left) strHzAlign "Left"; else if (Box.SelectionAlignment HorizontalAlignment.Center) strHzAlign "Center"; else if (Box.SelectionAlignment HorizontalAlignment.Right) strHzAlign "Right";
strHTML += "
" + Environment.NewLine + "
";
}
// Verifier changement GRAS
if (Box.SelectionFont.Bold != blnGras)
{
if (Box.SelectionFont.Bold == false)
{
strHTML += "";
}
else
{
strHTML += "";
}
}
//Verifier changement ITALIQUE
if (Box.SelectionFont.Italic != blnItalic)
{
if (Box.SelectionFont.Italic == false)
{
strHTML += "";
}
else
{
strHTML += "";
}
}
//Ajouter le caractere
switch (Box.Text.Substring(intCount - 1, 1))
{
case "\n":
strHTML += "
";
break;
case " ":
strHTML += " ";
break;
case "\t":
strHTML += " ";
break;
default:
strHTML += System.Web.HttpUtility.HtmlEncode(Box.Text.Substring(intCount - 1, 1));
break;
}
//Mise a jour du style courant
strColeur = Box.SelectionColor.ToKnownColor().ToString();
blnGras = Box.SelectionFont.Bold;
blnItalic = Box.SelectionFont.Italic;
strPolice = Box.SelectionFont.FontFamily.Name;
shtTaille = Convert.ToInt16(Box.SelectionFont.Size);
hzAlign = Box.SelectionAlignment;
}
//Fermer les Tag si necessaire
if (blnGras) strHTML += "";
if (blnItalic) strHTML += "";
//Fermer le style et la page HTML
strHTML += "
</HTML>";
//Restorer la selection d'origine
Box.Select(lngDepartOriginal, lngTailleOriginal);
return strHTML;
}
snak27
Messages postés17Date d'inscriptionsamedi 1 mars 2008StatutMembreDernière intervention25 septembre 2008 15 mars 2008 à 09:55
super codebravo
8/10
cs_Trappiste
Messages postés6Date d'inscriptionsamedi 23 août 2003StatutMembreDernière intervention25 août 2005 5 sept. 2005 à 23:48
Super.
Peut-on facilement transposer le code en VB6 ?
Sûrement en utilisant quelques API, mais lesquelles ?
CsM Skate
Messages postés60Date d'inscriptiondimanche 8 mai 2005StatutMembreDernière intervention20 mai 2007 22 août 2005 à 14:26
Tout simplement génial :)
cs_YaNn0u
Messages postés48Date d'inscriptionlundi 6 janvier 2003StatutMembreDernière intervention27 avril 2005 18 juil. 2004 à 20:16
Avec Inet ?! Comment ça ? lol
Car en fait, j'aimerais activer l'HTML dans les richtextbox..
Merci
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 25 avril 2004 à 18:42
ou en l'écrivant toi-même, ce qui est tjs plus gratifiant.
dionysos6868
Messages postés310Date d'inscriptionjeudi 4 septembre 2003StatutMembreDernière intervention 9 juin 20051 25 avril 2004 à 18:41
oui avec un composant iNet
cs_YaNn0u
Messages postés48Date d'inscriptionlundi 6 janvier 2003StatutMembreDernière intervention27 avril 2005 25 avril 2004 à 17:38
Salut,
Est-ce que cest possible de faire l'inverse ?
html vers richtextbox ?
merci !
dionysos6868
Messages postés310Date d'inscriptionjeudi 4 septembre 2003StatutMembreDernière intervention 9 juin 20051 25 avril 2004 à 14:03
simple et pratique rien a dire tres bien
9/10 pour la lisibilité et la simplicitée
cs_Crazyht
Messages postés1522Date d'inscriptionmardi 18 décembre 2001StatutMembreDernière intervention21 août 20108 19 avril 2003 à 12:34
lol merci pour le compliment et pour le maileur voir un peu plus au dans la liste :)
@++
Crazyht
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 19 avril 2003 à 11:38
super code :) ça devait être casse tête de trovuer le meilleur endroit pour mettre la boucle, et pour utiliser un minimum de balmaises html. bravo :)
je ne peux pas le tester car je programme en C++, je n'ai pas VB (ça n'empeche pas de comprendre le code, c'est bien documenté), mais je te mets 8. Certainement pratique si tu veux créer un mailer ou autre chose du genre :)
26 mars 2015 à 23:56
17 oct. 2008 à 19:45
17 oct. 2008 à 19:44
Voila traduction en C# pour les faignant :)
public static string RichToHtml(RichTextBox Box)
{
string strHTML="";
string strColeur;
bool blnGras;
bool blnItalic;
string strPolice;
short shtTaille;
HorizontalAlignment hzAlign;
string strHzAlign="";
int lngDepartOriginal;
int lngTailleOriginal;
int intCount;
if (Box.Text.Length == 0) return strHTML;
lngDepartOriginal = 0;
lngTailleOriginal = Box.TextLength;
Box.Select(0, 1);
//Entete HTML
strHTML = "<HTML>";
strColeur = Box.SelectionColor.ToKnownColor().ToString();
blnGras = Box.SelectionFont.Bold;
blnItalic = Box.SelectionFont.Italic;
strPolice = Box.SelectionFont.FontFamily.Name;
hzAlign = Box.SelectionAlignment; if (hzAlign HorizontalAlignment.Left) strHzAlign "Left"; else if (hzAlign HorizontalAlignment.Center) strHzAlign "Center"; else if (hzAlign HorizontalAlignment.Right) strHzAlign "Right";
shtTaille = Convert.ToInt16( Box.SelectionFont.Size);
strHTML += "
";
if (blnGras)
{
strHTML += "";
}
if (blnItalic)
{
strHTML += "";
}
strHTML += Box.Text.Substring(0, 1);
//Boucle sur le reste du texte
for (intCount =2;intCount<=Box.Text.Length;intCount++) {
//Selection du caractere
Box.Select(intCount - 1, 1);
//Verifier et implementer si necessaire un changement de style
if ((Box.SelectionColor.ToKnownColor().ToString() != strColeur) || (Box.SelectionFont.FontFamily.Name != strPolice) || (Convert.ToInt16(Box.SelectionFont.Size) != shtTaille) || (Box.SelectionAlignment != hzAlign))
{ if (Box.SelectionAlignment HorizontalAlignment.Left) strHzAlign "Left"; else if (Box.SelectionAlignment HorizontalAlignment.Center) strHzAlign "Center"; else if (Box.SelectionAlignment HorizontalAlignment.Right) strHzAlign "Right";
strHTML += "
" + Environment.NewLine + "
";
}
// Verifier changement GRAS
if (Box.SelectionFont.Bold != blnGras)
{
if (Box.SelectionFont.Bold == false)
{
strHTML += "";
}
else
{
strHTML += "";
}
}
//Verifier changement ITALIQUE
if (Box.SelectionFont.Italic != blnItalic)
{
if (Box.SelectionFont.Italic == false)
{
strHTML += "";
}
else
{
strHTML += "";
}
}
//Ajouter le caractere
switch (Box.Text.Substring(intCount - 1, 1))
{
case "\n":
strHTML += "
";
break;
case " ":
strHTML += " ";
break;
case "\t":
strHTML += " ";
break;
default:
strHTML += System.Web.HttpUtility.HtmlEncode(Box.Text.Substring(intCount - 1, 1));
break;
}
//Mise a jour du style courant
strColeur = Box.SelectionColor.ToKnownColor().ToString();
blnGras = Box.SelectionFont.Bold;
blnItalic = Box.SelectionFont.Italic;
strPolice = Box.SelectionFont.FontFamily.Name;
shtTaille = Convert.ToInt16(Box.SelectionFont.Size);
hzAlign = Box.SelectionAlignment;
}
//Fermer les Tag si necessaire
if (blnGras) strHTML += "";
if (blnItalic) strHTML += "";
//Fermer le style et la page HTML
strHTML += "
</HTML>";
//Restorer la selection d'origine
Box.Select(lngDepartOriginal, lngTailleOriginal);
return strHTML;
}
15 mars 2008 à 09:55
8/10
5 sept. 2005 à 23:48
Peut-on facilement transposer le code en VB6 ?
Sûrement en utilisant quelques API, mais lesquelles ?
22 août 2005 à 14:26
18 juil. 2004 à 20:16
Car en fait, j'aimerais activer l'HTML dans les richtextbox..
Merci
25 avril 2004 à 18:42
25 avril 2004 à 18:41
25 avril 2004 à 17:38
Est-ce que cest possible de faire l'inverse ?
html vers richtextbox ?
merci !
25 avril 2004 à 14:03
9/10 pour la lisibilité et la simplicitée
19 avril 2003 à 12:34
@++
Crazyht
19 avril 2003 à 11:38
je ne peux pas le tester car je programme en C++, je n'ai pas VB (ça n'empeche pas de comprendre le code, c'est bien documenté), mais je te mets 8. Certainement pratique si tu veux créer un mailer ou autre chose du genre :)