Previous: chrvfy Up: ../chrrtn.html First: introduction
SUBROUTINE CHRXLT (TEXT,LENTXT,OLD,NEW,LENSUB) (Translate Characters) Given a character string defined by "TEXT(*),LENTXT", translate characters according to the replacements in the strings "OLD,LENSUB" and "NEW,LENSUB". If either LENTXT or LENSUB is less than 1, return occurs immediately with no action taken. Each character occurring in OLD(*) has a corresponding character in NEW(*). For example, the statement CALL CHRXLT (TEXT,LENTXT, '<>', '()', 2) will result in each occurrence of < in TEXT(*) being translated to (, and each > to ). The characters in OLD(*) should be unique. In case they are not, the translation MUST be according to the last occurrence of a duplicated character. That is, if OLD(*) contains 'BAB' and NEW(*) contains 'XYZ', then A's in the substring will be translated to Y's, and B's to Z's. This restriction facilitates implementation of the translation with an internal lookup table constructed from the standard character set with changes according to substitutions of OLD characters with NEW characters performed in order from left to right.