文字フィールドを参照するすべてのコンテキストで、そのフィールド内の文字の順次サブセットである サブストリングを参照することができます。 例えば、フィールド値が ABCD であれば、その 2 番目と 3 番目の文字である BC を参照できます。
さらに、ターゲット・フィールドが CHAR、DBCHAR、または UNICODE 型である場合、assignment 文の左側にサブストリングを指定することもできます。 サブストリング・エリアは充填されます (必要な場合、ブランクで埋め込まれます)。 また、代入されたテキストが、サブストリング・エリアを超えることはありません (ただし、必要な場合は、切り捨てられます)。 さらに、ターゲット・フィールドが limited-length string である場合、左側にサブストリングを指定することもできます。この状態については、後で例を挙げて説明します。
fromIndex の値はバイト位置を表します。ただし、itemReference が DBCHAR 型または UNICODE 型の項目である場合は除きます。その場合、値は 2 バイト文字の位置を表します。
itemReference がストリング (limited length ではない) である場合、fromIndex の値は、1 から、そのストリングの長さまでの間になります。
itemReference がストリングである場合、fromIndex の値は、1 から、変数宣言で指定した長さまでの間になります。後の例で示すように、位置に値がない場合、サブストリングは空ストリングです。
アラビア語やヘブライ語などの双方向言語で作業している場合でも、左端の文字からカウントしてください。
toIndex の値はバイト位置を表します。ただし、itemReference が DBCHAR 型または UNICODE 型の項目である場合は除きます。その場合、値は 2 バイト文字の位置を表します。
itemReference がストリング (limited length ではない) である場合、toIndex の最大値は、ストリング内の最後の文字の位置になります。
itemReference が limited-length string である場合、toIndex の最大値は、変数宣言で指定した長さになります。後の例で示すように、位置に値がない場合、サブストリングは、文字のある最後の位置までしか拡張しません。
toIndex が、fromIndex より大きく、両方の数値が有効である場合、サブストリングは空ストリングになります。
アラビア語やヘブライ語などの双方向言語で作業している場合でも、左端の文字からカウントしてください。
limited string(20); s string; limited = "123456789"; s = limited[11:12]; // エラーはありません。s の値は、"" (空ストリング) です。 s = limited[8:12]; // エラーはありません。s の値は、"89" です。 limited = s[8:12]; // s に長さ制限がないためのエラーです。 // 最後の有効位置は最後の文字があるところです。
limited string(20) = "123456789"; s string = "abc"; limited[12:14] = s; // エラーはありません。制限された値は "123456789 abc" に なっています:
関連概念
EGL での変数の参照
関連タスク
EGL 文およびコマンドの構文図
関連リファレンス
テキスト式