Tests et branchements
If – Comparaison
Ce paramètre compare le contenu de deux chaînes de caractères/constantes/valeurs nulles.
IF b.Field1/N@n =/<>/</<=/>/>= b.Field2/N@n/Constant/Null Then …
…
Else
…
EndIf
IF b.Field1/N@n =/<>/</<=/>/>= b.Field2/N@n/Constant/Null Then Goto Tag
Les valeurs nulles ne peuvent être comparées qu'à l'aide des opérateurs =, < ou >.
/* Assign value 1 in W.Field_2 if W.Field_1 is ‘O’,
/* else assign 0
W.Field_2 = 0
If W.Field_1 <> 'O' Then
W.Field_2 = 1
EndIf
/* Skip when I.codeX equal to X
If I.CodeX = 'X' Then Goto *SKIP
SCAN – Recherche et branchement
Ce paramètre recherche la première occurrence d'une chaîne à l'intérieur d'une autre chaîne à partir d'une position donnée et se branche à un mot-clé selon que la chaîne a été trouvée ou non.
SCAN b.Field1 WITH b.Field2/Constant POS N@n IFFOUND Tag
IFNOTFOUND
SCAN recherche la suite d'octets de Field2 dans Field1 à partir de la position indiquée dans N@n et place la position de la première occurrence trouvée dans N@n, qui doit être numérique.
Le branchement au mot-clé s'effectue en fonction de la condition du test.
/* Find all occurrences in buffer I.DESCRIPTION
/* with the character à to replace it with @.
N@0 = 0
BEGIN_SCAN:
SCAN I.LIBELLE WITH 'à' POS N@0 IFNOTFOUND END_SCAN
I.LIBELLE(N@0:1) = ’@’
GOTO BEGIN_SCAN
END_SCAN: