Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 言語解説書


図の説明: UNSTRING ステートメント

この図は、UNSTRING ステートメントの処理を示しています。この説明では、以下のステートメントを使用します。

UNSTRING send-id DELIMITED BY delimiter-id OR ALL "*"
INTO receiver-id1 DELIMITER IN delim-1 COUNT IN cnt1
     receiver-id2 DELIMITER IN delim-2
     reciever-id3 DELIMITER IN delim-3 COUNT IN cnt3
WITH POINTER pointer-1
TALLYING IN tally-field-1
ON OVERFLOW GO TO overflow-exit.
END-UNSTRING

初期データ値は以下のとおりです。

それぞれの受信区切り文字フィールドの長さは 1 文字です。

send-id 内のデータは左から右へ検査されます。処理ステップは以下のとおりです。

  1. receiver-id1 の場合:
    • 123 の 3 文字が receiver-id1 に転送され、その長さ (6 文字) に合わせて receiver-id1 にブランクが埋め込まれます。
    • 区切り文字のアスタリスクが delim-1 内に置かれます。 ALL "*" が区切り文字として指定されたため、両方のアスタリスクが区切り文字として使用されます。
    • Cnt1 は、移動した文字数 (3) に設定されます。
  2. receiver-id2 の場合:
    • 45678 の文字が receiver-id2 に転送され、その長さ (6 文字) に合わせて receiver-id2 にブランクが 1 つ埋め込まれます。
    • 区切り文字の疑問符 (?) は delim-2 内に置かれます。
  3. receiver-id3 の場合:
    • send-id 内の次の疑問符 (?) の前に文字が存在しないため、receiver-id3 には文字が転送されません。
    • 区切り文字の疑問符 (?) は delim-3 内に置かれます。
    • cnt3 は 0 に設定されます。
  4. receiver-id4 の場合:
    • 90ABC の文字が 5 文字フィールドの receiver-id4 に転送されます。
    • cnt4 が 8 (send-id 内の検査された文字数) に設定されます。
  5. tally-field-1 が 5 (転送されたフィールド数 + 1) に設定されます。
  6. pointer-1 が 21 (送信フィールドの長さ + 1) に設定されます。

send-id 内のすべての文字が検査されたため、overflow-exit には分岐しません。

図の説明の終わり。


ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)