Cómo: |
Idiomas disponibles: informes, Maintain
La función CHKFMT comprueba una cadena en busca de caracteres o tipos de caracteres incorrectos. Esta función compara cada carácter de una cadena con el carácter correspondiente de otra cadena, denominada máscara. Si todos los caracteres de la cadena coinciden con los caracteres o tipos de caracteres de la máscara, CHKFMT devuelve el valor 0. En caso contrario, CHKFMT devuelve un valor igual a la posición del primer carácter de la cadena que no coincide con la máscara.
Si la máscara es más corta que la cadena de caracteres, la función sólo comprueba la porción de la cadena correspondiente a la máscara. Por ejemplo, si está usando una máscara de cuatro caracteres para comprobar una cadena de nueve, sólo se verifican los cuatro primeros de la cadena, el resto se devuelve como no coincidente y CHKFMT da como resultado la primera posición no coincidente.
CHKFMT(numchar, source_string, 'mask', output)
donde:
Número entero
Es el número de caracteres comparados con la máscara.
Alfanumérico
Es la cadena de caracteres que se va a comprobar, entre comillas simples, o un campo o variable que contenga la cadena de caracteres.
Alfanumérico
Es la máscara, que contiene los caracteres de la comparación, entre comillas simples.
Algunos caracteres de la máscara son genéricos y representan tipos de carácter. Si se compara un carácter de la cadena con uno de estos caracteres y resulta que son del mismo tipo, el carácter coincide. Caracteres genéricos:
A, es cualquier letra entre A y Z (en mayúsculas o minúsculas).
9, cualquier dígito entre 0 y 9.
X, cualquier letra entre A y Z, o dígito entre 0 y 9.
$, es cualquier carácter.
Cualquier otro carácter de la máscara sólo representa ese carácter. Por ejemplo, si el tercer carácter de la máscara es B, el tercer carácter de la cadena debe ser B, para que coincidan.
Número entero
Es el nombre del campo que contiene el resultado, o el formato del valor de salida puesto entre comillas solas.
CHKFMT examina EMP_ID en busca de caracteres numéricos que empiecen por 11 y guarda el resultado en CHK_ID:
TABLE FILE EMPLOYEE
PRINT EMP_ID AND LAST_NAME AND
COMPUTE CHK_ID/I3 = CHKFMT(9, EMP_ID, '119999999', CHK_ID);
WHERE DEPARTMENT EQ 'PRODUCTION';
END
La salida es:
EMP_ID LAST_NAME CHK_ID ------ --------- ------ 071382660 STEVENS 1 119265415 SMITH 0 119329144 BANNING 0 123764317 IRVING 2 126724188 ROMANS 2 451123478 MCKNIGHT 1
WebFOCUS |