Un outil utile pour manipuler les sorties booléennes, le ! Opérateur (NOT) dans JMP peut également avoir d'autres applications intéressantes, telles que l'utilisation avec Contient() dans le message <
Tout d'abord, clarifions ici que nous discutons de l'utilisation de ! en tant que opérateur et non comme l'outil syntaxique utilisé dans Séquences d'échappement dans des chaînes entre guillemets ; dans ces cas, il ne prend pas le sens NOT.
Vous pouvez penser à ! comme n'importe quel autre opérateur dans JMP. Vous connaissez probablement les plus courantes : Additionner (+), Soustraire (-), Multiplier (*), Diviser (/), etc. Dans un sens général, un opérateur est un symbole à un ou deux caractères utilisé pour effectuer des actions arithmétiques courantes, comparer des valeurs, construire des listes, inscrire un élément de données, envoyer des messages, concaténer des listes, des noms de portée, des expressions de collage et des expressions de fin. .
La ! Le caractère (souvent appelé le caractère "bang") dans JMP est utilisé dans le code JSL comme opérateur pour indiquer un NON logique, ce qui signifie, dans le contexte des valeurs booléennes (vrai ou faux), qu'il mappe non nul (ou vrai ) valeurs à 0 (ce qui signifie faux) et mappe les valeurs 0 (0 ou faux) à 1 (ce qui signifie vrai).
Voici quelques exemples simples de son utilisation :
Exemple 1 :
x = 1;
!x;
//LOG RESULT: 0
Exemple 2 :
x = 0;
!x;
//LOG RESULT: 1
Exemple 3 :
!(1 < 2);
//LOG RESULT: 0
Lorsque vous le regroupez avec d'autres opérateurs, vous pouvez le considérer comme appartenant à d'autres opérateurs "logiques" tels que OR (|) et AND (&), qui sont généralement utilisés dans les instructions If().
Exemple 1 :
x = 4;
//Check if x is NOT equal to 2 or 3
If( x != 2 & !(x == 3),
Show("Not Equal to 2 or 3"),
Show("Equal to 2 or 3")
);
//LOG RESULT: "Not Equal to 2 or 3"
Remarque : Notez ici que vous pouvez affirmer NOT Equal avec != ou en ajoutant ! avant l'expression d'égalité complète, telle que !(x==3).
Exemple 2 :
str = "hello world";
//Check if str does NOT contain the letter "o"
If (!Contains(str,"o"),
Show("Does not contain o"),
Show("Contains o")
);
//LOG RESULT: "Contains o"
Il existe de nombreuses situations où il peut être utile d'utiliser ! où il n'est pas limité à vos instructions If() comme ci-dessus. Nous avons vu un exemple d'utilisation de ! avec Contient(), mais allons un peu plus loin. Une utilisation classique de Contient() est dans le contexte d'un message << Select Where(), comme illustré dans cet exemple :
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//Select Rows in the table that do not contain the letter "A" for :name column
<FONT color="#000000">dt << Select Where (!Contains(:name, "A"));
</FONT>
C'est la même chose que
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//Select Rows in the table that do not contain the letter "A" for :name column
dt << Select Where (Contains(:name, "A")==0);<BR />
La première instruction "Select Where" ci-dessus correspond à la sortie que vous verriez si vous parcouriez la Lignes fenêtre dans l'interface utilisateur, naviguez jusqu'à Sélection de ligne --> Sélectionner où … puis sélectionnez l'option dans la liste déroulante de la boîte de dialogue "ne contient pas".

Comme vous pouvez le voir dans l'exemple ci-dessus, l'utilisation de ! peut rendre le code plus concis et lisible ; cela fonctionne également mieux lorsque vous souhaitez combiner des instructions dans vos messages <
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//Select Rows in the table that do not contain the letter "A" and "E", and contain letter "I"
dt << Select Where (!Contains(:name, "A") & !Contains(:name,"E") & Contains(:name, "I"));
L'opérateur NOT a de nombreuses applications utiles dans JSL, alors essayez-le dans votre code. Bien entendu, n'hésitez pas à contacter l'assistance technique de JMP si vous rencontrez des problèmes ou si vous avez des questions !