Bool + paramètre numérique

La commande https://livedoc.4d.com/4D-Langage-17.1/Booleens/Bool.301-4179002.fr.htmlBool> permet (entre autre) de transformer un code d’erreur numérique en booléen : si le code numérique vaut 0 Bool retournera Faux sinon Vrai.

Je gère mes codes d’erreur avec des valeurs négatives :

<code 4D>
C_LONGINT($L_MyError)
Case of
: (1=2)
$L_MyError:=-1
: (10=20)
$L_MyError:=-2
Else
$L_MyError:=1
End case

If (Bool($L_MyError))
ALERT(“On fait quoi de mes codes négatifs”)
End if
</code 4D>

Il me semblerait bon que Bool retourne Faux pour toute valeur inférieure ou égale à 0

Je suis résolument contre.
Ça doit continuer à retourner faux uniquement pour 0.
Ça fonctionne comme ça en javascript par exemple et c’est très bien.

Même dans ton cas :
0 = pas d’erreur
sinon erreur

Moi, c’est sur les chaine que je me suis posé la question…

J’ai compris que Bool permet (entre autres) de remplacer deux “étages” :
<code 4D>
si($personne.homme#Null)
si($personne.homme)
//
fin de si
fin de si
</code 4D>
par un seul :
<code 4D>
si(bool($personne.homme)
//
fin de si
</code 4D>

Du coup je me suis demandé s’il n’aurait pas été plus intéressant que Bool renvoie également Faux quand la propriété est une chaine vide.
Actuellement je fais :
<code 4D>
si($retourFonction.error#Null)
si($retourFonction.error#"")
//
fin de si
fin de si
</code 4D>
Et j’aimerais faire :
<code 4D>
si(bool($retourFonction.error)
//
fin de si
</code 4D>
Mais je rate peut-être une énormité…

Tout à fait d’accord avec toi Arnaud.
C’est un autre sujet mais ce serait bien qu’elle traite les chaînes aussi, comme en javascript du reste.

Bool("") = faux
Bool(“a”) = vrai

Bon, alors voilà le deal : je fais la https://forums.4d.com/Post/FR/29297880/1/29297881#29297881fitcheure> et, incidemment par hasard et inadvertance, comme tu passais devant l’urne, etc. :mrgreen:

: Stanislas CARON

Tout à fait d’accord avec toi Arnaud.
C’est un autre sujet mais ce serait bien qu’elle traite les chaînes
aussi, comme en javascript du reste.

Bool("") = faux
Bool(“a”) = vrai

Ou à minima des chaines comme True/False ou Vrai/Faux

<code 4D>
$B_isSession:=Bool(“true”)
$B_isSession:=Bool(“false”)

</code 4D>

: Bertrand SOUBEYRAND

Ou à minima des chaines comme True/False ou Vrai/Faux

<code 4D>
$B_isSession:=Bool(“true”)
$B_isSession:=Bool(“false”)

</code 4D>
À mon sens, c’est pas trop l’idée de la commande.
En revanche, JSON Parse fait ça très bien.