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 "&" :
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);
                }
Donc par exemple:
Si txtin = a+b+c*(d*e)
Alors txtout = a|b|c&(d&e)
Avec a,b,c,d et e = 0 ou 1
Mon problème:
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)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
int Result = Convert.ToInt32(txtout); // ne marche pas
Comment faire pour transformer "txtout" en une équation et en afficher le résultat en int ?