%XLATE (変換)

%XLATE(from:to:string{:startpos})

%XLATE は、ストリング変換元変換先、および開始位置 の値にしたがって変換します。

最初のパラメーターには置換される対象の文字のリストが入り、2 番目のパラメーターには置き換わる文字が入ります。たとえば、ストリングが変換元 の 3 番目の文字を含んでいる場合、この文字のオカレンスごとに 変換先 の 3 番目の文字で置き換えられます。

3 番目のパラメーターは、変換の対象となるストリングです。4 番目のパラメーターは、変換が開始される位置です。デフォルトでは、変換は 1 桁目から開始されます。

最初の 3 つのパラメーターのタイプは、文字、図形、または UCS-2 が可能です。 3 つすべてが同じタイプでなければなりません。 戻り値は、ストリング と同じタイプ、同じ長さになります。

4 番目のパラメーターは、小数点以下の桁数がゼロである非浮動数値でなければなりません。

詳細については、ストリング命令または 組み込み関数を参照してください。

図 244. %XLATE の例
  *..1....+....2....+....3....+....4....+....5....+....6....+....7...+....
D up              C                   'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
D lo              C                   'abcdefghijklmnopqrstuvwxyz'
D string          S             10A   inz('rpg dept')

  /FREE

   string = %XLATE(lo:up:'rpg dept');
   // string now contains 'RPG DEPT'

   string = %XLATE(up:lo:'RPG DEPT':6);
   // string now contains 'RPG Dept'
  /END-FREE