Como: |
Linguagens Disponíveis: Reporting, Maintain
A função CTRAN converte um caractere dentro de uma string de caracteres para outro caractere baseado no seu valor decimal. Esta função é especialmente útil na alteração de caracteres de substituição em caracteres indisponíveis ou em caracteres difíceis de serem inseridos ou indisponíveis no seu teclado. Também pode ser utilizado para inserir caracteres difíceis de serem inseridos ao se repsonder a um comando -PROMPT do Dialogue Manager, como uma vírgula ou um apóstrofo. Ela elimina a necessidade de posicionar entradas entre aspas.
Para utilizar CTRAN, você deve saber o decimal equivalente dos caracteres na representação interna da máquina. Observe que o gráfico de codificação para conversão depende da plataforma, portanto, sua opção de plataforma e configuração determina se a codificação ASCII, EBCDIC ou Unicode será utilizada.
Nas configurações Unicode, esta função utiliza valores dentro do intervalo:
CTRAN(length, source_string, decimal, dec_value, output)
onde:
Inteiro
É o comprimento da string fonte ou um campo que contém o comprimento.
Alfanumérico
É a string de caracteres a ser traduzida, colocada entre aspas simples ou um campo ou variável contendo a string de caracteres.
Inteiro
É o valor decimal ASCII ou EBCDIC do caractere a ser traduzido.
Inteiro
É o valor decimal ASCII ou EBCDIC do caractere a ser usado como substituto do decimal.
Alfanumérico
É o nome do campo que contém o resultado ou o formato do valor de saída posto entre aspas simples.
CTRAN traduz os espaços em ADDRESS_LN3 (valor decimal ASCII de 32) em underscores (valor decimal ASCII de 95) e armazena o resultado em ALT_ADDR:
TABLE FILE EMPLOYEE
PRINT ADDRESS_LN3 AND COMPUTE
ALT_ADDR/A20 = CTRAN(20, ADDRESS_LN3, 32, 95, ALT_ADDR);
BY EMP_ID
WHERE TYPE EQ 'HSM';
END
A saída é:
EMP_ID ADDRESS_LN3 ALT_ADDR ------ ----------- -------- 117593129 RUTHERFORD NJ 07073 RUTHERFORD_NJ_07073_ 119265415 NEW YORK NY 10039 NEW_YORK_NY_10039___ 119329144 FREEPORT NY 11520 FREEPORT_NY_11520___ 123764317 NEW YORK NY 10001 NEW_YORK_NY_10001___ 126724188 FREEPORT NY 11520 FREEPORT_NY_11520___ 451123478 ROSELAND NJ 07068 ROSELAND_NJ_07068___ 543729165 JERSEY CITY NJ 07300 JERSEY_CITY_NJ_07300 818692173 FLUSHING NY 11354 FLUSHING_NY_11354
CTRAN traduz os espaços em ADDRESS_LN3 (valor decimal EBCDIC de 64) em underscores (valor decimal EBCDIC de 109) e armazena o resultado em ALT_ADDR:
TABLE FILE EMPLOYEE
PRINT ADDRESS_LN3 AND COMPUTE
ALT_ADDR/A20 = CTRAN(20, ADDRESS_LN3, 64, 109, ALT_ADDR);
BY EMP_ID
WHERE TYPE EQ 'HSM'
END
A saída é:
EMP_ID ADDRESS_LN3 ALT_ADDR ------ ----------- -------- 117593129 RUTHERFORD NJ 07073 RUTHERFORD_NJ_07073_ 119265415 NEW YORK NY 10039 NEW_YORK_NY_10039___ 119329144 FREEPORT NY 11520 FREEPORT_NY_11520___ 123764317 NEW YORK NY 10001 NEW_YORK_NY_10001___ 126724188 FREEPORT NY 11520 FREEPORT_NY_11520___ 451123478 ROSELAND NJ 07068 ROSELAND_NJ_07068___ 543729165 JERSEY CITY NJ 07300 JERSEY_CITY_NJ_07300 818692173 FLUSHING NY 11354 FLUSHING_NY_11354___
Information Builders |