Evaluation d'une expression booléenne contenu
Résolu/Fermé
arthur24
Messages postés
17
Date d'inscription
mardi 16 décembre 2003
Statut
Membre
Dernière intervention
20 août 2015
-
7 déc. 2007 à 09:38
arthur24 Messages postés 17 Date d'inscription mardi 16 décembre 2003 Statut Membre Dernière intervention 20 août 2015 - 7 mars 2008 à 15:05
arthur24 Messages postés 17 Date d'inscription mardi 16 décembre 2003 Statut Membre Dernière intervention 20 août 2015 - 7 mars 2008 à 15:05
A voir également:
- Evaluation d'une expression booléenne contenu
- Word a trouvé du contenu illisible - Guide
- Contenu sme - Forum YouTube
- Le fichier à télécharger correspond au contenu brut d’un courrier électronique. de quel pays a été envoyé ce message ? - Guide
- Téléchargez cette archive (dossier compressé). en extraire tous les fichiers dans un dossier local. quel fichier contient l’expression trouverpix ? ✓ - Forum Windows
- Contenu mms ✓ - Forum Vos droits sur internet
2 réponses
phil232
Messages postés
607
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
31 janvier 2008
178
7 déc. 2007 à 13:55
7 déc. 2007 à 13:55
tu vas devoir parser ta variable parceque c'est vrai une chaine de caractères n'est pas une expression boolean (pour l'homme ça va mais une machine ne sait pas ce que tu veut)
Dim S
Dim B1 as boolean
Dim B2 as boolean
Dim B3 as boolean
S = Split(str, "AND")
If Instr(S(0), "True") > 0 Then B1 = True Else B1 = False
If Instr(S(1), "True") > 0 Then B1 = True Else B1 = False
B3 = B1 AND B2
Dim S
Dim B1 as boolean
Dim B2 as boolean
Dim B3 as boolean
S = Split(str, "AND")
If Instr(S(0), "True") > 0 Then B1 = True Else B1 = False
If Instr(S(1), "True") > 0 Then B1 = True Else B1 = False
B3 = B1 AND B2
arthur24
Messages postés
17
Date d'inscription
mardi 16 décembre 2003
Statut
Membre
Dernière intervention
20 août 2015
1
7 mars 2008 à 15:05
7 mars 2008 à 15:05
Depuis quelques jours je me disais que des outils externes au code (SQL, Excel,...) devait bien permettre d'évaluer des expressions booléennes. Connaissant mieux SQL, j'ai fait quelques recherches sur le sujet et, ce matin, je suis tombé sur cet article :
https://www.sqlservercentral.com/articles/evaluating-boolean-expressions-using-t-sql
J'ai trouvé dans la procédure stockée décrite les éléments qui me manquaient pour formater correctement une expression analysable, par exemple, par SQL Server.
Le "AND" devient &, le "OR" devient |, etc.
Le "TRUE" devient 1, le "FALSE" devient 0.
Il suffit de reformater l'expression booléenne de départ pour l'exprimer avec les opérateur du SGBD, constituer une requète du style "SELECT " & MonExpressionBool et d'exécuter le tout comme n'importe quelle requète.
Le SGBD retourne le résultat de l'évaluation, sans soucis de profondeur dans le parenthésage, et quelle qu'en soit la structure.
Bien sur, cette solution n'est pas élégante du point de vue algorithmique. Elle déplaira aux fans de la récursion, mais elle a le mérite d'être simple et immédiatement applicable dans une application adossée à une base de données.
Ces quelques jours auront eu le mérite de me replonger dans les joies des fonctions récursives, ça faisait longtemps...
Merci à tous de votre aide.
https://www.sqlservercentral.com/articles/evaluating-boolean-expressions-using-t-sql
J'ai trouvé dans la procédure stockée décrite les éléments qui me manquaient pour formater correctement une expression analysable, par exemple, par SQL Server.
Le "AND" devient &, le "OR" devient |, etc.
Le "TRUE" devient 1, le "FALSE" devient 0.
Il suffit de reformater l'expression booléenne de départ pour l'exprimer avec les opérateur du SGBD, constituer une requète du style "SELECT " & MonExpressionBool et d'exécuter le tout comme n'importe quelle requète.
Le SGBD retourne le résultat de l'évaluation, sans soucis de profondeur dans le parenthésage, et quelle qu'en soit la structure.
Bien sur, cette solution n'est pas élégante du point de vue algorithmique. Elle déplaira aux fans de la récursion, mais elle a le mérite d'être simple et immédiatement applicable dans une application adossée à une base de données.
Ces quelques jours auront eu le mérite de me replonger dans les joies des fonctions récursives, ça faisait longtemps...
Merci à tous de votre aide.