Bonjour à tous,
J'essaye de faire des calculs avec des opérateurs logiques (AND, OR, XOR...etc), pour cela j'ai une textBox qui me permet de saisir le calcul mais en utilisant:
- "+" = OR
- "*" = AND
- "!" = NOT
Or, en C# on sait que :
- OR = "|"
- AND = "&"
- NOT = "!"
J'ai donc quelques lignes de code qui remplacent les "+" et "*" en "|" et "&" :
Donc par exemple:
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
16
17
18
19
20
21
22
23
24
25 private char a1 = '|'; private char b1 = '&'; private char c1 = '!'; private static char[] badCharacter1 = { '+' }; private static char[] badCharacter2 = { '*' }; private static char[] badCharacter3 = { '!' }; string txtin = txtExpression.Text; //zone de saisie du texte en forme originale string txtout = txtin; //Utilisé pour le remplacement des caractères for (int j = 0; j < badCharacter1.Length; j++) { txtout = txtout.Replace(badCharacter1[j], a1); } for (int j = 0; j < badCharacter1.Length; j++) { txtout = txtout.Replace(badCharacter2[j], b1); } for (int j = 0; j < badCharacter1.Length; j++) { txtout = txtout.Replace(badCharacter3[j], c1); }
Mon problème:Si txtin = a+b+c*(d*e)
Alors txtout = a|b|c&(d&e)
Avec a,b,c,d et e = 0 ou 1
J'aimerai obtenir le résultat : "0" ou "1" suivant ce qui est écrit dans txtout en considérant que les valeurs des variables sont rentrées préalablement. (En clair, j'aimerai que txtout soit transformée en une équation)
Comment faire pour transformer "txtout" en une équation et en afficher le résultat en int ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 int Result = Convert.ToInt32(txtout); // ne marche pas
Partager