COBOL2002 ユーザーズガイド

[目次][用語][索引][前へ][次へ]

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回目の実行 K01 K02 K03 3 成立する
2回目の実行 T1 N4 K05 3 成立する
  :
n回目の実行 N1 M35   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に入っています。