Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Evaluation d'une expression booléenne contenue dans une string

2 réponses
Avatar
Arthur
Bonjour à tous,

Voici mon problème. Je travaile sous VS2005 et je tente d'évaluer une
condition booléenne contenue dans une variable de type string.

La variable est simplement déclarée par : dim str as string
A l'issu d'un traitement, le contenu de la variable est du type
"((<valeur_booléenne>)AND(<valeur_booléenne>))" et je cherche à évaluer cette
expression pour obtenir la valeur booléenne de l'ensemble de l'expression.


J'ai pensé résoudre le problème par l'appel de Cbool : cBool(str) mais
j'obtiens le message "La conversion de la chaîne "((True)AND(True))" en type
'Boolean' n'est pas valide."

La fonction Cbool n'accepte pas en paramètre de variable de type string.
L'anomalie est la même avec l'appel directe sous la forme
cbool("((True)AND(True))"). Par contre, l'exécution de cbool((True)AND(True))
retourne bien la valeur True.

La fonction Cbool n'est visiblement pas le bon moyen pour évaluer une chaîne
de caractère contenant une expression booléenne. Mais je ne connais pas
d'autre moyen de résoudre ce problème.



Merci par avance de votre aide.

2 réponses

Avatar
Gilles TOURREAU
Le Thu, 06 Dec 2007 13:42:01 +0100, Arthur
a écrit:

Bonjour à tous,

Voici mon problème. Je travaile sous VS2005 et je tente d'évaluer une
condition booléenne contenue dans une variable de type string.

La variable est simplement déclarée par : dim str as string
A l'issu d'un traitement, le contenu de la variable est du type
"((<valeur_booléenne>)AND(<valeur_booléenne>))" et je cherche à évaluer
cette
expression pour obtenir la valeur booléenne de l'ensemble de
l'expression.


J'ai pensé résoudre le problème par l'appel de Cbool : cBool(str) mais
j'obtiens le message "La conversion de la chaîne "((True)AND(True))" en
type
'Boolean' n'est pas valide."

La fonction Cbool n'accepte pas en paramètre de variable de type string.
L'anomalie est la même avec l'appel directe sous la forme
cbool("((True)AND(True))"). Par contre, l'exécution de
cbool((True)AND(True))
retourne bien la valeur True.

La fonction Cbool n'est visiblement pas le bon moyen pour évaluer une
chaîne
de caractère contenant une expression booléenne. Mais je ne connais pas
d'autre moyen de résoudre ce problème.



Merci par avance de votre aide.






Il n'existe rien de natif pour évaluer une chaine booléenne dans le .NET
Framework...
Il faudrait rechercher sur google un composant permettant ce genre de
chose.

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Arthur
C'est bien ce que je craignais, mais merci tout de même de votre réponse.

Cordialement

"Gilles TOURREAU" a écrit :

Le Thu, 06 Dec 2007 13:42:01 +0100, Arthur
a écrit:

> Bonjour à tous,
>
> Voici mon problème. Je travaile sous VS2005 et je tente d'évaluer une
> condition booléenne contenue dans une variable de type string.
>
> La variable est simplement déclarée par : dim str as string
> A l'issu d'un traitement, le contenu de la variable est du type
> "((<valeur_booléenne>)AND(<valeur_booléenne>))" et je cherche à évaluer
> cette
> expression pour obtenir la valeur booléenne de l'ensemble de
> l'expression.
>
>
> J'ai pensé résoudre le problème par l'appel de Cbool : cBool(str) mais
> j'obtiens le message "La conversion de la chaîne "((True)AND(True))" en
> type
> 'Boolean' n'est pas valide."
>
> La fonction Cbool n'accepte pas en paramètre de variable de type string.
> L'anomalie est la même avec l'appel directe sous la forme
> cbool("((True)AND(True))"). Par contre, l'exécution de
> cbool((True)AND(True))
> retourne bien la valeur True.
>
> La fonction Cbool n'est visiblement pas le bon moyen pour évaluer une
> chaîne
> de caractère contenant une expression booléenne. Mais je ne connais pas
> d'autre moyen de résoudre ce problème.
>
>
>
> Merci par avance de votre aide.
>
>
>

Il n'existe rien de natif pour évaluer une chaine booléenne dans le .NET
Framework...
Il faudrait rechercher sur google un composant permettant ce genre de
chose.

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr