|
begin process at 2008 05 16 21:53:34
Derniers logiciels
|
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 de la même categorie
Commentaires
Discussions en rapport avec ce code source
|
CalendriCode
| | | L | M | M | J | V | S | D |
| | | | 1 | 2 | 3 | 4 |
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 | |
|
|
|