5.3.2 UNSTRING文

UNSTRING文は,送り出し側作用対象の連続したデータを分解し,幾つかの受け取り側作用対象データ項目に移します。

UNSTRING文については,マニュアル「COBOL2002 言語 標準仕様編 10.8.52 UNSTRING文」を参照してください。

UNSTRING文の使用例を次に示します。

(例1)
コンマで区切られている19文字のデータを分解して転記します。
[図データ]

      77 SEND-02 PIC X(19).
      77 RR-21   PIC X(8).
      77 RR-22   PIC X(8).
      77 RR-23   PIC X(8).
            :
          UNSTRING SEND-02 DELIMITED BY ','
                   INTO RR-21 RR-22 RR-23.

(例2)
  • 100バイトのデータ項目中にコンマで区切られたデータが入っているときに,データ項目のデータを3個ずつ取り出して転記します。
  • すべてのデータを処理したかどうかの判定には,OVERFLOW指定を使用します。
送り出し側作用対象:
[図データ]
受け取り側作用対象
実行結果
AAの値BBの値CCの値CTRの値OVERFLOW条件
1回目の実行K01K02K033成立する
2回目の実行T1N4K053成立する
  :
n回目の実行N1M35 2成立しない

      77 SEND-03 PIC X(100).
      77 AA      PIC X(5).
      77 BB      PIC X(5).
      77 CC      PIC X(5).
      77 SW-1    PIC 9(1) VALUE 0.
      77 PTR-1   PIC 9(3) VALUE 1.
      77 CTR     PIC 9(3) VALUE 0.
                      :
          PERFORM TEST AFTER UNTIL SW-1 NOT = 0
            MOVE SPACE TO AA BB CC
            MOVE 0     TO SW-1, CTR
            UNSTRING SEND-03
               DELIMITED BY ',' OR ALL SPACE
               INTO AA, BB, CC,
               WITH POINTER PTR-1
               TALLYING IN CTR
               NOT ON OVERFLOW MOVE 1 TO SW-1
            END-UNSTRING
             :
            AA, BB, CCを使った処理をする
             :
          END-PERFORM.
               :

データの個数はCTRに入っています。