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に入っています。