Bonjour,
Je développe une application WP en C# et je fais face à un problème.
J'ai une classe Enigme avec plusieurs attributs, dont un string qui sert d'énoncé à l'énigme.
Quand j'ajoute une énigme, afin d'aller à la ligne, il me suffit de placer des \n.
Exemple :
Quand j'affiche mon texte, j'ai bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Enigme en = new Enigme() { Titre = "Une histoire de lettre", Texte = "Je commence par un e\nJe finis par un e\nJe contiens une lettre.\nQui suis-je?", Num = 1, Solution = "enveloppe", Reussi = false };
Je commence par un e
Je finis par un e
Je contiens une lettre
Qui suis-je?
MAIS, mon problème est que je ne note pas ma chaine en brute, je la récupère d'une base de données...
Dans ma base de données SQL Server, j'ai une variable ntext pour mon texte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Enigme eni = new Enigme() { Num = (int)e.Result[i], Titre = Convert.ToString(e.Result[i+1]), Texte = Convert.ToString(e.Result[i+2]), Solution = Convert.ToString(e.Result[i+3]), Reussi = false };
La valeur est : Je commence par un e\nJe finis par un e\nJe contiens une lettre.\nQui suis-je?
Je devrais donc avoir le même résultat en sortie, mais il n'en est rien, quand j'affiche mon texte venant la BDD, j'obtiens :
Je commence par un e\nJe finis par un e\nJe contiens une lettre.\nQui suis-je?
Avec les \n et non des retour à la ligne. Comment puis-je arrangeais ça? J'attribue pourtant bien la même chaine de caractère au Texte, ce sont tout les 2 des string, ayant la même valeur...
Merci.
édit : J'ai trouvé une solution :
1. Dans la base de données, je remplace mes \n par un caractère spécial que je n'utiliserais jamais pour définir une énigme, j'ai pris '§'.
2. Je split mon string sur ce §, et je recopie le tout dans un nouveau string en ajoutant \n
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 string[] tableau_de_mots = (Convert.ToString(e.Result[i+2])).Split('§'); string texteEnigme = ""; for (int j = 0; j < tableau_de_mots.Count(); j++) { texteEnigme += tableau_de_mots[j] + "\n"; } Enigme eni = new Enigme() { Num = (int)e.Result[i], Titre = Convert.ToString(e.Result[i+1]), Texte = texteEnigme, Solution = Convert.ToString(e.Result[i+3]), Reussi = false };
Partager