|
NetData : comment contrôler la syntaxe d'un e-mail |
|
PGM PARM(&INT &OK) DCL VAR(&INT) TYPE(*CHAR) LEN(100) DCL VAR(&OK) TYPE(*CHAR) LEN(1) DCL VAR(&CP1) TYPE(*DEC) LEN(3) VALUE(1) DCL &CP2 *DEC 3 /* RECHERCHE @ */ BOUCLE1: IF COND(%SST(&INT &CP1 1) *EQ '@') THEN(DO) IF COND(%SST(&INT &CP1 1) *EQ ' ') THEN(GOTO ERREUR) CHGVAR &CP1 (&CP1 + 1) GOTO BOUCLE2 IF COND(&CP1 = 100) THEN(DO) GOTO ERREUR ENDDO ELSE DO CHGVAR &CP1 (&CP1 + 1) GOTO BOUCLE1 ENDDO /* RECHERCHE . */ BOUCLE2: IF COND(%SST(&INT &CP1 1) *EQ '.') THEN(DO) IF COND(%SST(&INT &CP1 1) *EQ ' ') THEN(GOTO ERREUR) CHGVAR &CP1 (&CP1 + 2) GOTO BOUCLE3 ENDDO IF COND(&CP1 = 100) THEN(DO) GOTO ERREUR ENDDO
CHGVAR &CP1 (&CP1 + 1) GOTO BOUCLE2 ENDDO /* AU MOINS DEUX CARACTERES APRES LE . */ BOUCLE3: IF COND(%SST(&INT &CP1 1) *EQ ' ') THEN(GOTO ERREUR) CHGVAR &OK 'O' GOTO FIN ERREUR: CHGVAR &OK 'N' FIN: SNDMSG MSG(&OK) TOUSR(*REQUESTER) ENDPGM
PLB
|