Come: |
La funzione Maintain MNTGETTOK divide una stringa di caratteri in una sottostringa, chiamata token. Per poter usare MNTGETTOK, i dati devono avere un carattere specifico, chiamato delimitatore, che avviene nella stringa e separa la stringa in token. MNTGETTOK restituisce il token specifico dall'argomento token_number.
Per esempio, è possibile usare MNTGETTOK per estrarre valori individuali da un elenco separato da punti e virgola, designando il punto e virgola come delimitatore.
Per usare questa funzione, è necessario importare la funzione libreria MNTUWS.
Nota:
Module Import(mntuws)
MNTGETTOK(infield,"delim",token_number)
dove:
Alfanumerico
Il campo contenente la stringa di caratteri originale o una stringa di caratteri racchiusa tra virgolette singole o doppie.
Alfanumerico
Il delimitatore nella stringa principale racchiuso tra virgolette singole o doppie. Se si specifica più di un carattere, è utilizzato solo il primo carattere". Il delimitatore non è incluso nel token.
Valore intero
Il numero del token da estrarre. Se questo argomento è positivo, i token sono contati da sinistra a destra. Se questo argomento è negativo, i token sono contati da destra a sinistra. Ad esempio, -2 estrae il secondo token dalla destra. Se questo argomento è 0, la funzione restituisce degli spazi.
MNTGETTOK estrae token dalla stringa di caratteri di lunghezza variabile SKILLSTRING e memorizza il risultato nella stringa di caratteri di lunghezza variabile TOKENX. Il delimitatore è uno spazio vuoto. Il numero token si basa sul valore della variabile counter i, che aumenta con ogni passaggio dal loop Ripeti:
MAINTAIN MODULE IMPORT(MNTUWS) SKILLSTRING/A0="Typing Steno Filing Bkkping"; COMPUTE i/i2 = 1; TYPE "Job skills required are:" REPEAT 6 COMPUTE TOKENX/A0=MNTGETTOK(SKILLSTRING, ' ', i ); TYPE "<<TOKENX"; COMPUTE i = i+1; ENDREPEAT END
L'emissione è:
Job skills required are: Typing Steno Filing Bkkping
La seguente procedura rispetto all'origine dati EMPLOYEE recupera il segmento EMPINFO e la prima istanza di ADDRESS_LN3 per ogni dipendente, quindi estrae l'ultimo token (codice postale) da ADDRESS_LN3:
MAINTAIN FILE EMPLOYEE MODULE IMPORT(MNTUWS) REPEAT ALL; NEXT EMP_ID INTO ESTACK IF FOCFETCH NE 0 THEN GOTO EXITREPEAT; NEXT ADDRESS_LN3 INTO ASTACK TYPE "<<ESTACK.FIRST_NAME <<ESTACK.LAST_NAME"; TYPE "<<ASTACK.ADDRESS_LN3"; COMPUTE ZIP/A0=MNTGETTOK(ASTACK.ADDRESS_LN3, " ", -1 ); TYPE "ZIP CODE IS: <<ZIP"; TYPE " "; ENDREPEAT END
L'emissione è:
ALFRED STEVENS NEW YORK NY 10001 ZIP CODE IS: 10001 MARY SMITH NEW YORK NY 10001 ZIP CODE IS: 10001 DIANE JONES NEW YORK NY 10001 ZIP CODE IS: 10001 RICHARD SMITH NEW YORK NY 10001 ZIP CODE IS: 10001 JOHN BANNING FREEPORT NY 11520 ZIP CODE IS: 11520 JOAN IRVING NEW YORK NY 10001 ZIP CODE IS: 10001 ANTHONY ROMANS NEW YORK NY 10001 ZIP CODE IS: 10001 JOHN MCCOY NEW YORK NY 10001 ZIP CODE IS: 10001 ROSEMARIE BLACKWOOD NEW YORK NY 10001 ZIP CODE IS: 10001 ROGER MCKNIGHT NEW YORK NY 10001 ZIP CODE IS: 10001 MARY GREENSPAN NEW YORK NY 10001 ZIP CODE IS: 10001 BARBARA CROSS NEW YORK NY 10001 ZIP CODE IS: 10001
WebFOCUS |