Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 01 May 2006 14:51

jakesp
Membre
Lieu: Montreal, QC
Date d'inscription: 28 Sep 2005
Messages: 126
Site web

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

jakesp
Membre
Lieu: Montreal, QC
Date d'inscription: 28 Sep 2005
Messages: 126
Site web

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

 

Pied de page des forums

Powered by FluxBB