How to: |
Available Languages: reporting, Maintain
The CTRAN function translates a character within a character string to another character based on its decimal value. This function is especially useful for changing replacement characters to unavailable characters, or to characters that are difficult to input or unavailable on your keyboard. It can also be used for inputting characters that are difficult to enter when responding to a Dialogue Manager -PROMPT command, such as a comma or apostrophe. It eliminates the need to enclose entries in single quotation marks (').
To use CTRAN, you must know the decimal equivalent of the characters in internal machine representation. Note that the coding chart for conversion is platform dependent, hence your platform and configuration option determines whether ASCII, EBCDIC, or Unicode coding is used. Printable EBCDIC or ASCII characters and their decimal equivalents are listed in .
In Unicode configurations, this function uses values in the range:
CTRAN(length, source_string, decimal, decvalue, output)
where:
Integer
Is the number of characters in the source string, or a field that contains the length.
Alphanumeric
Is the character string to be translated enclosed in single quotation marks ('), or the field or variable that contains the character string.
Integer
Is the ASCII or EBCDIC decimal value of the character to be translated.
Integer
Is the ASCII or EBCDIC decimal value of the character to be used as a substitute for decimal.
Alphanumeric
Is the name of the field that contains the result, or the format of the output value enclosed in single quotation marks.
CTRAN translates the spaces in ADDRESS_LN3 (ASCII decimal value 32) to underscores (ASCII decimal value 95), and stores the result in 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
The output is:
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 translates the spaces in ADDRESS_LN3 (EBCDIC decimal value 64) to underscores (EBCDIC decimal value 109) and stores the result in 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
The output is:
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___