|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
COQTEXTTOOLS : TRANSFORMATIONS TEXTE SIMPLE ET UTILISATION ANTIXSSLIBRARY
Information sur la source
Description
Voici une petite application sans grande prétention autre que fournir quelques "outils" de manipulation du texte contenu dans le presse papiers.
Le principal point d'intérêt du code en lui même réside dans la classe EncodeManager qui se charge d'effectuer les opérations sur le contenu du Clipboard, en utilisant au besoin les méthodes fournies par l'Anti-Cross Site Scripting Library (AntiXssLibrary v1.5 : http://www.microsoft.com/downloads/details.aspx?FamilyID=efb9c819-53ff-4f82-bfaf-e11625130c25&DisplayLang=en).
Vous trouverez une présentation plus détaillée de l'outil en lui même dans ce post sur mon blog : http://blogs.codes-sources.com/coq/archive/2007/04/30/coqtexttools-transformations-texte-simple-et-utilisation-antixsslibrary.aspx
Source
- /// <summary>
- /// Classe contenant les méthodes de traitement du contenu du Clipboard.
- /// </summary>
- class EncodeManager
- {
- const String BRTAG = "<br/>";
-
- #region Accès au Clipboard
-
- /// <summary>
- /// Obtient le texte présent dans le Clipboard.
- /// </summary>
- /// <returns>Chaîne de caractères contenant le texte présent dans le Clipboard, ou une chaîne vide en cas d'erreur.</returns>
- private static String GetClipboardText()
- {
- String text = String.Empty;
-
- if (Clipboard.ContainsText())
- {
- try
- {
- text = Clipboard.GetText();
- }
- catch (Exception ex)
- {
- System.Diagnostics.Debug.WriteLine(ex.ToString());
- text = String.Empty;
- }
- }
-
- return text;
- }
-
- /// <summary>
- /// Place le texte spécifié dans le Clipboard.
- /// </summary>
- /// <param name="text">Texte à placer dans le Clipboard.</param>
- private static void SetClipboardText(String text)
- {
- try
- {
- Clipboard.SetText(text);
- }
- catch (Exception ex)
- {
- System.Diagnostics.Debug.WriteLine(ex.ToString());
- }
- }
-
- #endregion Accès au Clipboard
-
- #region Regex
-
- /// <summary>
- /// Regex pour le traitement des retours à la ligne.
- /// </summary>
- private static Regex regexNL = new Regex(
- @"\r?\n",
- RegexOptions.IgnoreCase | RegexOptions.CultureInvariant | RegexOptions.IgnorePatternWhitespace | RegexOptions.Compiled
- );
-
- /// <summary>
- /// Regex pour le traitement des doubles retours à la ligne.
- /// </summary>
- private static Regex regexDoubleNL = new Regex(
- @"(\r?\n)\1",
- RegexOptions.IgnoreCase | RegexOptions.CultureInvariant | RegexOptions.IgnorePatternWhitespace | RegexOptions.Compiled
- );
-
- #endregion Regex
-
- #region Méthodes ToText
-
- /// <summary>
- /// Convertit le contenu du Clipboard en texte simple.
- /// </summary>
- public static void ToText()
- {
- String text = EncodeManager.GetClipboardText();
-
- if (text != null && text.Length > 0)
- {
- EncodeManager.SetClipboardText(text);
- }
- }
-
- /// <summary>
- /// Convertit le contenu du Clipboard en texte simple, avec suppression des retours à la ligne.
- /// </summary>
- public static void ToTextRemoveNL()
- {
- String text = EncodeManager.GetClipboardText();
-
- if (text != null && text.Length > 0)
- {
- text = regexNL.Replace(text, String.Empty);
- EncodeManager.SetClipboardText(text);
- }
- }
-
- /// <summary>
- /// Convertit le contenu du Clipboard en texte simple, avec remplacement des doubles retours à la ligne.
- /// </summary>
- public static void ToTextReplaceDoubleNL()
- {
- String text = EncodeManager.GetClipboardText();
-
- if (text != null && text.Length > 0)
- {
- text = regexDoubleNL.Replace(text, "$1");
- EncodeManager.SetClipboardText(text);
- }
- }
-
- #endregion Méthodes ToText
-
- #region Méthodes fournissant un encodage
-
- /// <summary>
- /// Convertit le contenu du Clipboard en texte simple, et l'encode à l'aide de <see cref="AntiXss.HtmlAttributeEncode"/>.
- /// </summary>
- public static void HtmlAttributeEncode()
- {
- String text = EncodeManager.GetClipboardText();
-
- if (text != null && text.Length > 0)
- {
- String encodedText = AntiXss.HtmlAttributeEncode(text);
- EncodeManager.SetClipboardText(encodedText);
- }
- }
-
- /// <summary>
- /// Convertit le contenu du Clipboard en texte simple, et l'encode à l'aide de <see cref="AntiXss.HtmlEncode"/>.
- /// </summary>
- public static void HtmlEncode()
- {
- String text = EncodeManager.GetClipboardText();
-
- if (text != null && text.Length > 0)
- {
- String encodedText = AntiXss.HtmlEncode(text);
- EncodeManager.SetClipboardText(encodedText);
- }
- }
-
- /// <summary>
- /// Convertit le contenu du Clipboard en texte simple, et l'encode à l'aide de <see cref="AntiXss.HtmlEncode"/>, en conservant les sauts de ligne.
- /// </summary>
- public static void HtmlEncodeNL()
- {
- String text = EncodeManager.GetClipboardText();
-
- if (text != null && text.Length > 0)
- {
- // traitement des lignes
- StringBuilder encodedText = new StringBuilder();
- using (StringReader textReader = new StringReader(text))
- {
- String currentLine = null;
- while ((currentLine = textReader.ReadLine()) != null)
- {
- if (currentLine.Length > 0)
- {
- // si la chaîne n'est pas vide, encodage
- encodedText.AppendLine(AntiXss.HtmlEncode(currentLine));
- }
- else
- {
- // sinon, simple ajout
- encodedText.AppendLine();
- }
- }
- }
- EncodeManager.SetClipboardText(encodedText.ToString());
- }
- }
-
- /// <summary>
- /// Convertit le contenu du Clipboard en texte simple, et l'encode à l'aide de <see cref="AntiXss.HtmlEncode"/>, en transformant les sauts de ligne en <BR/>.
- /// </summary>
- public static void HtmlEncodeBR()
- {
- String text = EncodeManager.GetClipboardText();
-
- if (text != null && text.Length > 0)
- {
- // traitement des lignes
- StringBuilder encodedText = new StringBuilder();
- using (StringReader textReader = new StringReader(text))
- {
- String currentLine = null;
- while ((currentLine = textReader.ReadLine()) != null)
- {
- if (currentLine.Length > 0)
- {
- // si la chaîne n'est pas vide, encodage
- encodedText.Append(AntiXss.HtmlEncode(currentLine));
- encodedText.Append(BRTAG);
- }
- else
- {
- // sinon, simple ajout
- encodedText.Append(BRTAG);
- }
- }
- }
- EncodeManager.SetClipboardText(encodedText.ToString());
- }
- }
-
- /// <summary>
- /// Convertit le contenu du Clipboard en texte simple, et l'encode à l'aide de <see cref="AntiXss.JavaScriptEncode"/>.
- /// </summary>
- public static void JavaScriptEncode()
- {
- String text = EncodeManager.GetClipboardText();
-
- if (text != null && text.Length > 0)
- {
- String encodedText = AntiXss.JavaScriptEncode(text);
- EncodeManager.SetClipboardText(encodedText);
- }
- }
-
- /// <summary>
- /// Convertit le contenu du Clipboard en texte simple, et l'encode à l'aide de <see cref="AntiXss.UrlEncode"/>.
- /// </summary>
- public static void UrlEncode()
- {
- String text = EncodeManager.GetClipboardText();
-
- if (text != null && text.Length > 0)
- {
- String encodedText = AntiXss.UrlEncode(text);
- EncodeManager.SetClipboardText(encodedText);
- }
- }
-
- /// <summary>
- /// Convertit le contenu du Clipboard en texte simple, et l'encode à l'aide de <see cref="AntiXss.VisualBasicScriptEncode"/>.
- /// </summary>
- public static void VisualBasicScriptEncode()
- {
- String text = EncodeManager.GetClipboardText();
-
- if (text != null && text.Length > 0)
- {
- String encodedText = AntiXss.VisualBasicScriptEncode(text);
- EncodeManager.SetClipboardText(encodedText);
- }
- }
-
- /// <summary>
- /// Convertit le contenu du Clipboard en texte simple, et l'encode à l'aide de <see cref="AntiXss.XmlAttributeEncode"/>.
- /// </summary>
- public static void XmlAttributeEncode()
- {
- String text = EncodeManager.GetClipboardText();
-
- if (text != null && text.Length > 0)
- {
- String encodedText = AntiXss.XmlAttributeEncode(text);
- EncodeManager.SetClipboardText(encodedText);
- }
- }
-
- /// <summary>
- /// Convertit le contenu du Clipboard en texte simple, et l'encode à l'aide de <see cref="AntiXss.XmlEncode"/>.
- /// </summary>
- public static void XmlEncode()
- {
- String text = EncodeManager.GetClipboardText();
-
- if (text != null && text.Length > 0)
- {
- String encodedText = AntiXss.XmlEncode(text);
- EncodeManager.SetClipboardText(encodedText);
- }
- }
-
- #endregion Méthodes fournissant un encodage
- }
/// <summary>
/// Classe contenant les méthodes de traitement du contenu du Clipboard.
/// </summary>
class EncodeManager
{
const String BRTAG = "<br/>";
#region Accès au Clipboard
/// <summary>
/// Obtient le texte présent dans le Clipboard.
/// </summary>
/// <returns>Chaîne de caractères contenant le texte présent dans le Clipboard, ou une chaîne vide en cas d'erreur.</returns>
private static String GetClipboardText()
{
String text = String.Empty;
if (Clipboard.ContainsText())
{
try
{
text = Clipboard.GetText();
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.ToString());
text = String.Empty;
}
}
return text;
}
/// <summary>
/// Place le texte spécifié dans le Clipboard.
/// </summary>
/// <param name="text">Texte à placer dans le Clipboard.</param>
private static void SetClipboardText(String text)
{
try
{
Clipboard.SetText(text);
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.ToString());
}
}
#endregion Accès au Clipboard
#region Regex
/// <summary>
/// Regex pour le traitement des retours à la ligne.
/// </summary>
private static Regex regexNL = new Regex(
@"\r?\n",
RegexOptions.IgnoreCase | RegexOptions.CultureInvariant | RegexOptions.IgnorePatternWhitespace | RegexOptions.Compiled
);
/// <summary>
/// Regex pour le traitement des doubles retours à la ligne.
/// </summary>
private static Regex regexDoubleNL = new Regex(
@"(\r?\n)\1",
RegexOptions.IgnoreCase | RegexOptions.CultureInvariant | RegexOptions.IgnorePatternWhitespace | RegexOptions.Compiled
);
#endregion Regex
#region Méthodes ToText
/// <summary>
/// Convertit le contenu du Clipboard en texte simple.
/// </summary>
public static void ToText()
{
String text = EncodeManager.GetClipboardText();
if (text != null && text.Length > 0)
{
EncodeManager.SetClipboardText(text);
}
}
/// <summary>
/// Convertit le contenu du Clipboard en texte simple, avec suppression des retours à la ligne.
/// </summary>
public static void ToTextRemoveNL()
{
String text = EncodeManager.GetClipboardText();
if (text != null && text.Length > 0)
{
text = regexNL.Replace(text, String.Empty);
EncodeManager.SetClipboardText(text);
}
}
/// <summary>
/// Convertit le contenu du Clipboard en texte simple, avec remplacement des doubles retours à la ligne.
/// </summary>
public static void ToTextReplaceDoubleNL()
{
String text = EncodeManager.GetClipboardText();
if (text != null && text.Length > 0)
{
text = regexDoubleNL.Replace(text, "$1");
EncodeManager.SetClipboardText(text);
}
}
#endregion Méthodes ToText
#region Méthodes fournissant un encodage
/// <summary>
/// Convertit le contenu du Clipboard en texte simple, et l'encode à l'aide de <see cref="AntiXss.HtmlAttributeEncode"/>.
/// </summary>
public static void HtmlAttributeEncode()
{
String text = EncodeManager.GetClipboardText();
if (text != null && text.Length > 0)
{
String encodedText = AntiXss.HtmlAttributeEncode(text);
EncodeManager.SetClipboardText(encodedText);
}
}
/// <summary>
/// Convertit le contenu du Clipboard en texte simple, et l'encode à l'aide de <see cref="AntiXss.HtmlEncode"/>.
/// </summary>
public static void HtmlEncode()
{
String text = EncodeManager.GetClipboardText();
if (text != null && text.Length > 0)
{
String encodedText = AntiXss.HtmlEncode(text);
EncodeManager.SetClipboardText(encodedText);
}
}
/// <summary>
/// Convertit le contenu du Clipboard en texte simple, et l'encode à l'aide de <see cref="AntiXss.HtmlEncode"/>, en conservant les sauts de ligne.
/// </summary>
public static void HtmlEncodeNL()
{
String text = EncodeManager.GetClipboardText();
if (text != null && text.Length > 0)
{
// traitement des lignes
StringBuilder encodedText = new StringBuilder();
using (StringReader textReader = new StringReader(text))
{
String currentLine = null;
while ((currentLine = textReader.ReadLine()) != null)
{
if (currentLine.Length > 0)
{
// si la chaîne n'est pas vide, encodage
encodedText.AppendLine(AntiXss.HtmlEncode(currentLine));
}
else
{
// sinon, simple ajout
encodedText.AppendLine();
}
}
}
EncodeManager.SetClipboardText(encodedText.ToString());
}
}
/// <summary>
/// Convertit le contenu du Clipboard en texte simple, et l'encode à l'aide de <see cref="AntiXss.HtmlEncode"/>, en transformant les sauts de ligne en <BR/>.
/// </summary>
public static void HtmlEncodeBR()
{
String text = EncodeManager.GetClipboardText();
if (text != null && text.Length > 0)
{
// traitement des lignes
StringBuilder encodedText = new StringBuilder();
using (StringReader textReader = new StringReader(text))
{
String currentLine = null;
while ((currentLine = textReader.ReadLine()) != null)
{
if (currentLine.Length > 0)
{
// si la chaîne n'est pas vide, encodage
encodedText.Append(AntiXss.HtmlEncode(currentLine));
encodedText.Append(BRTAG);
}
else
{
// sinon, simple ajout
encodedText.Append(BRTAG);
}
}
}
EncodeManager.SetClipboardText(encodedText.ToString());
}
}
/// <summary>
/// Convertit le contenu du Clipboard en texte simple, et l'encode à l'aide de <see cref="AntiXss.JavaScriptEncode"/>.
/// </summary>
public static void JavaScriptEncode()
{
String text = EncodeManager.GetClipboardText();
if (text != null && text.Length > 0)
{
String encodedText = AntiXss.JavaScriptEncode(text);
EncodeManager.SetClipboardText(encodedText);
}
}
/// <summary>
/// Convertit le contenu du Clipboard en texte simple, et l'encode à l'aide de <see cref="AntiXss.UrlEncode"/>.
/// </summary>
public static void UrlEncode()
{
String text = EncodeManager.GetClipboardText();
if (text != null && text.Length > 0)
{
String encodedText = AntiXss.UrlEncode(text);
EncodeManager.SetClipboardText(encodedText);
}
}
/// <summary>
/// Convertit le contenu du Clipboard en texte simple, et l'encode à l'aide de <see cref="AntiXss.VisualBasicScriptEncode"/>.
/// </summary>
public static void VisualBasicScriptEncode()
{
String text = EncodeManager.GetClipboardText();
if (text != null && text.Length > 0)
{
String encodedText = AntiXss.VisualBasicScriptEncode(text);
EncodeManager.SetClipboardText(encodedText);
}
}
/// <summary>
/// Convertit le contenu du Clipboard en texte simple, et l'encode à l'aide de <see cref="AntiXss.XmlAttributeEncode"/>.
/// </summary>
public static void XmlAttributeEncode()
{
String text = EncodeManager.GetClipboardText();
if (text != null && text.Length > 0)
{
String encodedText = AntiXss.XmlAttributeEncode(text);
EncodeManager.SetClipboardText(encodedText);
}
}
/// <summary>
/// Convertit le contenu du Clipboard en texte simple, et l'encode à l'aide de <see cref="AntiXss.XmlEncode"/>.
/// </summary>
public static void XmlEncode()
{
String text = EncodeManager.GetClipboardText();
if (text != null && text.Length > 0)
{
String encodedText = AntiXss.XmlEncode(text);
EncodeManager.SetClipboardText(encodedText);
}
}
#endregion Méthodes fournissant un encodage
}
Historique
- 30 avril 2007 23:22:13 :
- Changement de <BR/> en <br/>, pour faire plaisir à Cyril ;-)
- 04 mai 2008 18:01:38 :
- Correction mineure (faute d'orthographe).
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Clipboard ac Fichier Bitmap [ par Lordvb ]
je voudrais faire une application pour faire mes imprimes ecran. le pb est lorseque je veux previsualiser mon imprime ecran dans une picture box je bl
Utiliser Clipboard en mode console [ par MaxSoldier ]
Bonjours, je code en C#.Net et je voudrais utiliser la class Clipboard afinde pouvoir mettre du texte dans le presse papier. Mais je ne peut utiliser
Tableau récupéré dans le clipboard... [ par nerix27 ]
Bonjour,ça fait une semaine que je scrute toute la toile pour trouver réponse à mon problème, sans succès...Dans mon clipboard se trouve un tableau de
press papier (clipboard) [ par uzu ]
bonjourquelq'un peut me dir comment on utilise le clipboard dans un simple editeur, pour faire copy, cut et past ;pu un exemple qui existe sur le net.
clipboard office [ par winny68 ]
Bonjour,j'ai cherché sur le site une solution à mon problème mais je n'ai rien trouvé.Je voudrai copier un fichier, se trouvant dans un fichier Word,
[Winform] Copier-Coller sans formatage [ par virgul ]
Bonjour,Voila j'aimerais bien pouvoir supprimer le formattage dans mon clipboard (copier-coller) lorsque je copie dans un Richtextbox.Car je mets moi
Problème HtmlEncode [ par math289 ]
Bonjour, Je suis en train de développer un petit programme dans lequel j'utilise la méthode HtmlEncode de la classe HttpUtility pour convertir les ca
interdir insertion detailsview + htmlencode [ par AnoTreL ]
Bonjour, j'ai crée un DetailsView qui est donc relié à un sqldatasource. avec ce DetailsView je peux soit afficher ce qu'il y a dans la BDD ou alors i
Comment utiliser le clipboard (presse-papier) ? [ par godvicien ]
Salut à tous.J'ai trouver plein d'exemple pour copier coller du text ou une image, mais peut-on copier dans le clipboard toute une class ?- Ctrl-C : j
sendkeys clipboard word [ par micam ]
<link rel="Fi
|
Comparez les prix Nouvelle version
|