Como: |
A função PATTERN examina uma string de origem e produz um padrão que indica a sequência de números, letras maiúsculas e minúsculas na string de origem. Esta função é útil para a verificação de dados com o objetivo de garantir que o padrão está sendo seguido.
No padrão de saída:
PATTERN (length, source_string, output)
onde:
Numérico
É o comprimento de source_string.
Alfanumérico
É a string pai colocada entre aspas simples ou um campo contendo a string pai.
Alfanumérico
É o nome do campo que contém o resultado ou o formato do campo entre aspas simples.
Os seguintes 19 registros são armazenados em um arquivo sequencial de formato fixo (com LRECL 14) chamado 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
O Arquivo Master é:
FILENAME=TESTFILE, SUFFIX=FIX , SEGMENT=TESTFILE, SEGTYPE=S0, $ FIELDNAME=TESTFLD, USAGE=A14, ACTUAL=A14, $
A solicitação a seguir gera um padrão para cada ocorrência de TESTFLD e exibe-as pelo padrão que foi gerado. Ela exibe a contagem de cada padrão e sua porcentagem da contagem total. O comando PRINT mostra quais valores de TESTFLD geraram cada padrão.
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
Observe que linha próxima à última produziu um padrão a partir da string de entrada que contém um caractere não imprimível para que o caractere fosse alterado para X. Além disso, cada dígito numérico gerou um 9 na string de saída, cada letra maiúscula gerou o caractere 'A' e cada minúscula, o caractere 'a'. A saída é:
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
Information Builders |