Cómo: |
La función PATTERN examina una cadena de origen y produce un patrón que indica la secuencia de números, las mayúsculas y las minúsculas, en la cadena de origen. Esta función es útil a la hora de examinar datos y comprobar que siguen el patrón estándar.
En el patrón de salida:
PATTERN (length, source_string, output)
donde:
Numérico
Es la longitud de source_string.
Alfanumérico
Es la cadena de origen, entre comillas simples, o un campo que la contiene.
Alfanumérico
Es el nombre del campo que contendrá el resultado o el formato del campo entre comillas simples.
Los 19 registros siguientes están guardados en un archivo secuencial de formato fijo (con LRECL 14) llamado TESTFILE:
212-736-6250 212 736 4433 123-45-6789 800-969-INFO 10121-2898 10121 2 Penn Plaza 917-339-6380 917-339-4350 (212) 736-6250 (212) 736-4433 212-736-6250 212-736-6250 212-736-6250 (212) 736 5533 (212) 736 5533 (212) 736 5533 10121 Æ 800-969-INFO
El archivo máster es:
FILENAME=TESTFILE, SUFFIX=FIX , SEGMENT=TESTFILE, SEGTYPE=S0, $ FIELDNAME=TESTFLD, USAGE=A14, ACTUAL=A14, $
La siguiente solicitud genera un patrón para cada caso de TESTFLD y los muestra mediante el patrón generado. La solicitud muestra la suma de cada patrón y su porcentaje con respecto a la suma total. El comando PRINT muestra los valores de TESTFLD que generaron cada patrón.
FILEDEF TESTFILE DISK testfile.ftmDEFINE FILE TESTFILE
PATTERN/A14 = PATTERN (14, TESTFLD, 'A14' ) ;
END
TABLE FILE TESTFILE
SUM CNT.PATTERN AS 'COUNT' PCT.CNT.PATTERN AS 'PERCENT'
BY PATTERN
PRINT TESTFLD
BY PATTERN
ON TABLE COLUMN-TOTAL
END
Tenga en cuenta que la penúltima línea ha generado un patrón a partir de una cadena de entrada con un carácter no imprimible, que se ha convertido en una X. Por otro lado, cada dígito numérico ha generado un 9 en la cadena de salida, cada letra mayúscula ha generado el carácter ‘A’ y cada minúscula, el carácter ‘a’. La salida es:
PATTERN COUNT PERCENT TESTFLD ------- ----- ------- ------- (999) 999 9999 3 15.79 (212) 736 5533 (212) 736 5533 (212) 736 5533 (999) 999-9999 2 10.53 (212) 736-6250 (212) 736-4433 9 Aaaa Aaaaa 1 5.26 2 Penn Plaza 999 999 9999 1 5.26 212 736 4433 999-99-9999 1 5.26 123-45-6789 999-999-AAAA 2 10.53 800-969-INFO 800-969-INFO 999-999-9999 6 31.58 212-736-6250 917-339-6380 917-339-4350 212-736-6250 212-736-6250 212-736-6250 99999 1 5.26 10121 99999 X 1 5.26 10121 Æ 99999-9999 1 5.26 10121-2898 TOTAL 19 100.00
WebFOCUS |