文字列の走査・置換
概要
文字列の中から特定の文字のみを置き換えたい
XLATE命令
ソースストリング内の文字が、変換元および変換先ストリングに従って変換され結果フィールドに入れられます。
ソースストリングの変換は演算項目2に指定された位置から開始されて左から右へ1文字ずつ続けられます開始位置より前の文字は変換されずに結果フィールドに入れられます。
XLATE(E P)命令
「演算項目1」 :変換元:変換先
「演算命令」 :XLATE(E P)
「演算項目2」 :ソース・ストリング:開始位置
「結果フィールド」 :ターゲット・ストリング
%XLATE(変換)
[一般形式]
%XLATE (変換元 : 変換先 : ストリング {: 開始位置})
XLATE(命令)と同じ機能を持つ組み込み関数です。
使用例
_*..1....+....2....+....3....+....4....+....5....+....6....+....7...+....8.
C UP C 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
C LO C 'abcdefghijklmnopqrstuvwxyz'
C*
C STRING S 10A INZ('RPG XLATE')
C*
_*..1....+....2....+....3....+....4....+....5....+....6....+....7...+....8.
CL0N01FACTOR1+++++++OPCODE&EXTFACTOR2+++++++RESULT++++++++LEN++D+HILOEQ....
C UP:LO XLATE STRING:5 RESULT
C* RESULT IS 'RPG xlate'
C*
C EVAL RESULT = %XLATE(UP:LO:STRING)
C* RESULT IS 'rpg xlate'
注意
変換元と変換先で文字数が異なる場合、その文字は変換の対象とはなりません。
グラフィック形式も可能。※変換元・変換先・ソースストリング・結果フィールドで要同一形式