PATTERN: Cómo generar un patrón a partir de una cadena

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:


Principio de página

x
Sintaxis: Cómo Generar un patrón a partir de una cadena de entrada
PATTERN (length, source_string,  output)

donde:

length

Numérico

Es la longitud de source_string.

source_string

Alfanumérico

Es la cadena de origen, entre comillas simples, o un campo que la contiene.

output

Alfanumérico

Es el nombre del campo que contendrá el resultado o el formato del campo entre comillas simples.



Ejemplo: Cómo producir un patrón a partir de datos alfanuméricos

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