EDIT : Extraire ou ajouter des caractères

Comment :

Langages disponibles : reporting

La fonction EDIT extrait les caractères d'une chaîne source et ajoute des caractères à la chaîne de sortie, par comparaison avec un masque. Elle peut extraire une sous-chaîne à partir de différentes parties de la chaîne source. Elle peut aussi insérer des caractères depuis la chaîne source dans la chaîne de sortie. Par exemple, on peut extraire les deux premiers caractères et les deux derniers caractères d'une chaîne pour former une seule sous-chaîne.

EDIT compare les caractères d'un masque à ceux d'un champ source. Quand il rencontre un neuf dans le masque, EDIT copie le caractère correspondant du champ source dans le nouveau champ. Lorsqu'elle trouve un signe dollar ($) dans le masque, EDIT ignore le caractère correspondant du champ source. Quand il rencontre n'importe quel autre caractère dans le masque, EDIT copies ce caractère à la position correspondante dans le nouveau champ. Ce processus s'arrête quand le masque est épuisé.

Remarque :


Haut de page

x
Syntaxe : Extraire ou ajouter des caractères
EDIT(source_string, 'mask');

où :

source_string

Alphanumérique

est la chaîne de caractères dont les caractères doivent être choisis. Chacun des 9 du masque représente un chiffre, ce qui fait que le champ source_string doit être au moins aussi long que la chaîne de 9.

mask

Alphanumérique

est une chaîne de caractères de masque entre guillemets simples ou un champ contenant la chaîne de caractères entre guillemets simples . La longueur du masque, excluant tous les autres caractères autres que 9 et $, détermine la longueur d'un champ de sortie.



Exemple : Extraire et Ajouterdes Caractères

EDIT extraits de la première initiale du champ FIRST_NAME; le résultat est stocké dans FIRST_INIT. EDIT ajoute aussi des tirets à un champ EMP_ID; le résultat est stocké dans EMPIDEDIT : Le masque utilisé pour extraire la première initiale stockée dans le champ virtuel appelé MASK1 :

DEFINE FILE EMPLOYEE
MASK1/A10 = '9$$$$$$$$$'
END
TABLE FILE EMPLOYEE
PRINT LAST_NAME AND COMPUTE
FIRST_INIT/A1 = EDIT(FIRST_NAME, MASK1);
EMPIDEDIT/A11 = EDIT(EMP_ID, '999-99-9999');
WHERE DEPARTMENT EQ 'MIS';
END

La sortie est :

LAST_NAME        FIRST_INIT  EMPIDEDIT
---------        ----------  ---------
SMITH            M           112-84-7612
JONES            D           117-59-3129
MCCOY            J           219-98-4371
BLACKWOOD        R           326-17-9357
GREENSPAN        M           543-72-9165
CROSS            B           818-69-2173

Information Builders