Egalité relative
Par Fox74, jeudi 6 novembre 2008 à 18:46 :: Débutant :: #13 :: rss
= signifie "Commence par ..."
L'opérateur=a deux fonctions: 1) l'affectation de variable ou propriété lcToto="Bonjour" affecte la chaîne "Bonjour" à la variable lcToto en la créant si elle n'existe pas. 2) la comparaison entre expressions de même type ? lcToto="Bonjour" affiche .T. à l'écran (maintenir ctrl+Shift+Alt appuyées simultanément pour voir le résultat) Répond à la question lcToto est-il égal à "Bonjour" ? Par défaut (SET EXACT OFF) on obtient aussi: ? lcToto="Bon" affiche toujours .T. à l'écran ? "Bon"=lcToto affiche .F. à l'écran La comparaison est vérifiée si la première chaîne commence par la seconde Attention ! si on veut savoir si une chaîne est vide: ? lcToto="" affiche toujours .T. à l'écran Il ne faudra donc pas employer (chaîne vide ou pas) IF lcToto= "" ... qui serait toujours réalisée mais lui préférer IF EMPTY(lcToto) ... Complément: 1) Ce comportement de l'opérateur = n'est pas un bug ! Il a énormément d'avantages, en particulier pour les vues paramétrées 2) Pour une égalité absolue (même longueur, même casse, mêmes caractères) basculer SET EXACT à ON ou utiliser l'opérateur ==
Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.