割り当ての結果として使用される %SUBST

割り当ての結果として使用された場合に、この組み込み関数は引数のストリングの一 定の部分を参照します。 開始位置および長さとして指標のない配列を使用することはできません。

結果は、変数で指定された開始位置から始まり、指定された長さだけ続きます。 長さが指定されていない場合には、ストリングの終わりまで参照されます。 長さがストリングの終わりを超えた文字を参照している場合には、実行時エラーが 出されます。

%SUBST を割り当ての結果として使用する場合には、最初のパラメーターが記憶位置 を参照していなければなりません。 すなわち、%SUBST 操作の最初のパラメーターは次の 1 つでなければなりません。
  • フィールド
  • データ構造
  • データ構造サブフィールド
  • 配列名
  • 配列要素
  • テーブル要素

EVAL 命令による割り当ての結果として表す場合には、%SUBST の 2 番目および 3 番目のパラメーターとして有効な任意の式を使用することができます。

図 1. %SUBST の例
CL0N01Factor1+++++++Opcode(E)+Extended-factor2+++++++++++++++++++++++++++
 *
 * In this example, CITY contains 'Toronto, Ontario'
 * %SUBST returns the value 'Ontario'.
 *
C     ' '           SCAN      CITY          C
C                   IF        %SUBST(CITY:C+1) = 'Ontario'
C                   EVAL      CITYCNT = CITYCNT+1
C                   ENDIF
 *
 * Before the EVAL, A has the value 'abcdefghijklmno'.
 * After the EVAL A has the value 'ab****ghijklmno'
 *
C                   EVAL      %SUBST(A:3:4) = '****'