CTRAN: Cómo traducir un carácter en otro

Cómo:

Idiomas disponibles: informes, Maintain

La función CTRAN traduce un carácter de una cadena de caracteres en otro carácter, en base a su valor decimal. Esta función es muy útil a la hora de cambiar caracteres de reemplazo de caracteres no disponibles o de caracteres difíciles de introducir, o que no están disponibles, con su teclado. Además, puede utilizarse para introducir caracteres complejos, como la coma o el apóstrofe, a la hora de responder al comando -PROMPT de Dialogue Manager. Elimina la necesidad de colocar las entradas entre comillas simples.

Para usar CTRAN, debe conocer el equivalente decimal de los caracteres, en representación interna de máquina. Tenga en cuenta que el diagrama de codificación de conversiones depende de la plataforma; su opción de plataforma y configuración determina si se emplea la codificación ASCII, EBCDIC o Unicode. Los caracteres EBCDIC o ASCII que pueden imprimirse, y sus equivalentes decimales, aparecen listados en Diagrama de caracteres ASCII y EBCDIC.

En configuraciones Unicode, esta función emplea los valores del rango:


Principio de página

x
Sintaxis: Cómo Traducir un carácter en otro
CTRAN(length, source_string, decimal, decvalue, output)

donde:

length

Número entero

Es el número de caracteres de la cadena o un campo que contenga la longitud.

source_string

Alfanumérico

Es la cadena de caracteres que se va a traducir, entre comillas simples, o el campo o variable que contenga la cadena de caracteres.

decimal

Número entero

Es el valor decimal ASCII o EBCDIC del carácter que se va a traducir.

decimal

Número entero

Es el valor decimal ASCII o EBCDIC del carácter que se va a usar como sustituto de decimal.

output

Alfanumérico

Es el nombre del campo que contiene el resultado, o el formato del valor de salida puesto entre comillas simples.



Ejemplo: Cómo traducir espacios en caracteres de subrayado en una plataforma ASCII

CTRAN traduce los espacios de ADRESS_LN3 (valor decimal ASCII 32) en caracteres de subrayado (valor decimal ASCII 95) y almacena el resultado en 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

La salida es:

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


Ejemplo: Cómo traducir espacios en guiones bajos, en una plataforma EBCDIC

CTRAN traduce los espacios de ADRESS_LN3 (valor decimal EBCDIC 64) en guiones bajos (valor decimal EBCDIC 109) y guarda el resultado en 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

La salida es:

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