Como: |
Linguagens Disponíveis: Reporting, Maintain
A função CHKFMT verifica se há caracteres ou tipos de caracteres incorretos uma string. Ela compara cada string a uma segunda, chamada de máscara. Cada caractere da string é comparado ao seu respectivo na máscara. Caso todos os caracteres estejam corretos, CHKFMT exibe o valor de 0. Caso contrário, CHKFMT exibe um valor igual à posição do primeiro caractere da string que não corresponde ao seu respectivo na máscara.
Se a máscara for mais curta do que a string, a função verifica apenas a parte da string que corresponde à máscara. Por exemplo, se você estiver utilizando uma máscara de quatro caracteres para testar uma string de nove caracteres, apenasos quatro primeiros caracteres da string serão verificados. O resto será considerado sem correspondente, e o CHKFMT exibirá a primeira posição sem correspondente como o resultado.
CHKFMT(numchar, source_string, 'mask', output)
onde:
Inteiro
É o número de caracteres a ser comparado à máscara.
Alfanumérico
É a string de caracteres a ser verificada, colocada entre aspas simples ou um campo ou variável contendo a string de caracteres.
Alfanumérico
É a máscara, que contém os caracteres de comparação incluídos em aspas simples.
Alguns caracteres na máscara são genéricos e representam tipos de caracteres. Se um caractere na string for comparado a um ou mais caracteres e for do mesmo tipo, ele corresponderá". Os caracteres genéricos são:
A é qualquer letra entre A e Z (maiúscula ou minúscula).
9 é qualquer dígito entre 0 e 9.
X é qualquer letra entre A e Z ou qualquer dígito entre 0 e 9.
$ é qualquer caractere.
Qualquer outro caractere na máscara representa apenas aquele próprio caractere. Por exemplo, se o terceiro caractere na máscara for B, o terceiro caractere da string deve ser B para que haja correspondência.
Inteiro
É o nome do campo que contém o resultado ou o formato do valor de saída posto entre aspas simples.
CHKFMT verifica a ocorrência de nove caracteres numéricos começando por 11 em EMP_ID e armazena o resultado em 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
A saída é:
EMP_ID LAST_NAME CHK_ID ------ --------- ------ 071382660 STEVENS 1 119265415 SMITH 0 119329144 BANNING 0 123764317 IRVING 2 126724188 ROMANS 2 451123478 MCKNIGHT 1
Information Builders |