CTRAN : Convertir un caractère à un autre

Comment :

Langages disponibles : reporting, Maintain

La fonction CTRAN convertit un caractère dans une chaîne de caractères en un autre, en fonction de sa valeur décimale. Cette fonction est particulièrement utile pour le changement aux caractères de remplacement à ceux qui ne sont pas disponibles, ou à des caractères qui sont difficiles à saisir ou ceux qui ne sont pas disponibles sur votre clavier. Elle peut aussi être utilisée pour entrer des caractères difficiles à saisir lors d'une réponse à une commande -PROMPT du gestionnaire de dialogue, tels que une virgule ou une apostrophe. Ceci élimine le besoin de mettre les entrées entre guillemets simples.

Pour utiliser CTRAN, vous devez connaître le décimal équivalent aux caractères de la représentation interne dans la machine. Notez que le graphe de codage pour la conversion dépend de votre plate-forme, et donc votre option de configuration et de plates-forme détermine si les codes ASCII, EBCDIC, ou Unicode sont utilisés.

Dans les configurations Unicode, cette fonction utilise les plages de valeurs suivantes :


Haut de page

x
Syntaxe : Transformer un caractère en un autre
CTRAN(length, source_string, decimal, decvalue, output)

où :

length

Entier

est le nombre de caractères dans la chaîne, ou un champ qui contient la longueur.

source_string

Alphanumérique

est la chaîne de caractères à convertir encadrée par des guillemets simples, ou le champ contenant celle-ci.

décimal -23

Entier

est la valeur décimale ASCII ou EBCDIC du caractère à convertir.

decvalue

Entier

est la valeur décimale ASCII ou EBCDIC du caractère devant être utilisé comme substitut pour décimal.

output

Alphanumérique

est le champ qui contient le résultat, ou le format de la valeur de sortie entre guillemets simples.



Exemple : Convertir les espaces à souligner sur une plate-forme ASCII.

CTRAN convertit les espaces dans ADDRESS_LN3 (EBCDIC d'une valeur décimale de 32) au soulignement (ASCII d'une valeur décimale de 95); le résultat est stocké dans 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 sortie est :

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


Exemple : Convertir les espaces à souligner sur une plate-forme EBCDIC

CTRAN convertit les espaces dans ADDRESS_LN3 (EBCDIC d'une valeur décimale de 64) au soulignement (EBCDIC d'une valeur décimale de 109); le résultat est stocké dans 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 sortie est :

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