REPLACEBY2 Function

Purpose

Replaces some of the characters in a character expression by a pair of characters and returns a nonvarying string.

Syntax

REPLACEBY2 (x, y, z)

Parameters

x
Character expression which will be searched for characters to be replaced.
y
Character expression containing the values of the replacement pair .
z
Character expression containing the characters that are to be replaced by the pair of characters.

Description

REPLACEBY2 returns a nonvarying string which is formed by replacing some of the characters in the expression x by a pair of characters.

If a character in x is found in z, the character pair corresponding to it is copied to the result. Otherwise, the character in x is copied directly to the result. If z contains duplicate characters, the leftmost occurrence is used.

The string y must be twice as long as the string z.

Examples

foo: proc options(main);

     dcl str char (26);
     dcl t   char(64) var;
     dcl s1 char (4) init('X!P?');
     dcl s2 char (2) init('xp');
     dcl i fixed bin (31);

     dcl c1 char (4) init ('X!P?');
     dcl c2 char (2) init ('xp');
     str = 'xbcxyzghijklmnopqrstuvwxyz';

     if 'a' = 'a'A then
         t = replaceby2 (str, '5821503F'x, '7870'x);
     else
         t = replaceby2 (str, 'E75AD76F'x, 'A797'x);
     put skip list (t);

     t = replaceby2 (str, s1, s2);
     put skip list (t);

end;

Restrictions

None.