Conversion chaîne de caractère pour la mettre entre balise [C#] [Résolu]

Signaler
Messages postés
50
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
25 mai 2010
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
Bonjour,

J'aimerais convertir un texte que le client rentrera en une chaîne de caractère entre balise pour pouvoir l'insérer dans une requête SQL qui demande ce format.
Par exemple:
convertir : coucou, est-ce que tu reçoit bien un mail? --> en :
'coucou [NAME], 

est-ce que ça t'envoie bien un mail? 

'
Je ne sais pas du tout et je n'ai pas trouvé comment faire. Si vous pouviez m'aider merci d'avance.
Bonne journée.

11 réponses

Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
62
Hello,

Pour les caractère spéciaux, tu peux essayer avec System.Web.HttpUtility.HtmlEncodeCa ne transformera pas ç en  ç mais en ç ce qui revient au même.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
Messages postés
296
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
18 août 2008

Salut,
Peut être qu'en utilisant String.Split tu pourrais separer la chaîne entrée par l'utilisateur et la transformer ensuite.

Par exemple

String name = "toto";
String phraseSortie="";
String chaineEntree="coucou, est-ce que tu recoit bien un mail?";
String[] partiePhrase=chaineEntree.Split(',');

phraseSortie+=""+partiePhrase[0]+" "+name+",

"+partiePhrase[1]+"

";
Messages postés
50
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
25 mai 2010

ça pourrait marcher en effet et j'y ai pensé cependant je ne sais pas ce que le client va rentrer comme texte du coup je peux pas savoir ou "splitter",et ou mettre les balises.
Messages postés
296
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
18 août 2008

Après tu peux toujours recuperer la chaine et appliquer plusieurs split différents avec un traitement particulier pour chacun, genre je split sur les espaces, si le premier mot est "coucou", "bonjour","salut" je rajoute le nom derriere, je split sur les virgules etc ..
Messages postés
50
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
25 mai 2010

oui en effet c'est une possibilité. je peux détecter tous les sauts de lignes et rajouter en début de chaque phrase et en fin de ligne

et pour les caractères spéciaux je peux les détecter et les remplacer par ce qu'il va bien par ex: ç --> ç
Manque plus qu'à coder maintenant.
Merci pour le coup de main.
Messages postés
296
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
18 août 2008

De rien ^^
Messages postés
50
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
25 mai 2010

Merci beaucoup SharpMao ça va bien m'aider.
Messages postés
53
Date d'inscription
mercredi 29 août 2007
Statut
Membre
Dernière intervention
31 mars 2010

Peut tu simplement construire une phrase de type :

string template = "coucou M.<%Name%> <%Prenom%> ,&nbsp;

est-ce que &ccedil;a t&#39;envoie bien un mail?&nbsp;

"

//Et tu remplace les <%Emplacement%> par les valeurs de ton choix.
template = template.Replace(<%Name%>, "Mon Nom");
template = template.Replace(<%Prenom%>, "Mon Prénom");

Voila bon courage tiens moi au courant.
Messages postés
50
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
25 mai 2010

Non je ne peux pas le faire car si tu veux le client peut écrire 100 lignes et je ne sais pas ce qu'il va marquer. Ce que m'a dit SharpMao marche parfaitement pour les caractères spéciaux maitenant ce que je voudrais faire c'est rajouter au début de chaque ligne et en fin de ligne

.
Messages postés
296
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
18 août 2008

Ben je vois pas trop d'autres manières que de splitter ta chaine sur le caractère "\n" pour du linux ou du "\n\r" pour du windows il me semble.
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
87
Salut,

\r\n plutôt sous Windows (CRLF, pas LFCR)
De manière générale voir plutôt Environment .NewLine.

Concernant System.Web.HttpUtility.HtmlEncode citée par SharpMao : attention elle est relativement limitée, j'en ai parler un peu ici, ici et ici.

/*
coq
MVP Visual C#
CoqBlog
*/