#1 Mon 01 May 2006 14:51
De logique à numérique
Je suis novice à ce sujet donc j'apprécierais tout commentaire quel qu'il soit. J'essaie de faire des opérations impliquant des situations conditionnelles représentées par des variables logiques et sans utiliser des énoncés conditionnels (IF ...).
Par exemple additionner parmi les colonnes d'une table celles détectées par une variable logique correspondante que l'on peut énoncer de la sorte: somme sur les i de(colonne(i)*condition(i))
ou s'assurer que toute une série de conditions est remplie(cond1*cond2*cond3...)
En MB, une variable logique ne peut pas être utilisée en dehors d'une expression logique "pure". Un "IF" ne peut être utilisé dans une opération. Comment donc en convertir une variable logique en valeur numérique?
J'ai "inventé" ce matin à jeun (cela élimine des explications sulfureuses potentielles) une transformation qui semble marcher pour moi
ASC((STR$(logik)))\72
La valeur litérale de logik est F ou T (false or true) ayant un code ascii de 70 ou 84. En divisant ce code par un entier compris entre 73 et 83, on obtient 0 pour F et 1 pour T.
Mais est-ce LA façon de le faire? Votre avis sera bien venu.
Jacques Paris
Hors ligne
#2 Mon 01 May 2006 23:51
Re: De logique à numérique
LA façon est d'utiliser INT(variable_logique) qui retourne bien 0 ou 1.
Je m'excuse de donner ma propre réponse, mais le message original ne semble pas avoir atteint la liste, en tout cas pas moi. J'ai eu le temps d'avoir des réponses d'ailleurs. merci et la discussion est toujours ouverte.
Jacques Paris
Hors ligne