01 VLG-1.
02 VLG-1-ODOOBJ PIC 9 VALUE IS 5.
02 VLG-1-GR.
03 VLG-1-ODO PIC X OCCURS 1 TO 9 TIMES
DEPENDING ON VLG-1-ODOOBJ.
77 S-1 PIC X(20) VALUE IS ALL "123456789".
UNSTRING S-1
INTO VLG-1
END-UNSTRING
UNSTRING S-1
INTO VLG-1(1:LENGTH OF VLG-1)
END-UNSTRING
この形式では、UNSTRING ステートメントの実行の開始時での vlg-1 の実際の長さが必ず使用されます。
この修正は、UNSTRING ステートメントにオプショナルの 句 (DELIMITED BY、WITH POINTER、ON OVERFLOW) があってもその影響を 受けず、UNSTRING ステートメント内のフラグが立てられたすべての ID に同じように適用されます。
この変更によって影響を受ける UNSTRING ステートメントの場合、フラグが立てられた DELIMITED BY オペランドは、INTO の受信側の 1 つに依存していなければなりません。
01 DEL
02 OCC-DEL-1 PIC X OCCURS 9 TIMES.
02 VLEN-DEL-2-ODOOBJ PIC 9 VALUE IS 5.
02 VLEN-DEL-2.
03 VLEN-DEL-2-ODO PIC X OCCURS 1 TO 9 TIMES
DEPENDING ON VLEN-DEL-2-ODOOBJ.
77 S-1 PIC X(20) VALUE IS ALL "123456789".
77 R-1 PIC X(20) VALUE IS SPACES.
77 R-2 PIC X(20) VALUE IS SPACES.
77 SUB-5 PIC 99 VALUE IS 5.
UNSTRING S-1
DELIMITED BY OCC-DEL-1(SUB-5) OR VLEN-DEL-2,
INTO R-1 DELIMITER IN OCC-DEL-1(SUB-5 + 1)
COUNT IN VLEN-DEL-2-ODOOBJ,
R-2,
END-UNSTRING
メッセージ 3211 でフラグが立てられた項目は、修正する必要はありません。
この変更の影響を受ける UNSTRING ステートメントの場合、フラグが立てられた INTO ID は、その前の INTO 句内の受信側に依存していなければなりません。
01 REC.
02 R-1 PIC X(20) VALUE IS SPACES.
02 R-2-SUB PIC 9 VALUE IS 9.
02 OCC-R-2-GR.
03 OCC-R-2 PIC X OCCURS 9 TIMES.
02 R-3-ODOOBJ PIC 9 VALUE IS 9.
02 ODO-R-3.
03 FILLER PIC X OCCURS 1 TO 9 TIMES
DEPENDING ON R-3-ODOOBJ.
77 S-3 PIC X(20) VALUE IS "12 345 6789 .....".
UNSTRING S-3
DELIMITED BY ALL SPACES,
INTO R-1 COUNT IN R-2-SUB,
OCC-R-2(R-2-SUB) COUNT IN R-3-ODOOBJ,
ODO-R-3,
END-UNSTRING
この UNSTRING ステートメントは、CMPR2 と NOCMPR2 とでは異なる結果を生成します。2 番目 の INTO 受信側の添え字が最初の INTO 句の COUNT IN 受信側によって変更されるため です。さらに、3 番目の INTO 受信側の長さは、2 番目の INTO 句の COUNT IN 受信側によって変 更されます。
CMPR2 のもとでは、COUNT IN の ID に移される値が後続の INTO 句に使用されます。NOCMPR2 のもとでは、UNSTRING ステートメントの実行の開始時に有効な値が、すべての INTO 句に使用さ れます。
77 PTR PIC 99.
MOVE 1 TO PTR
UNSTRING S-3
DELIMITED BY ALL SPACES,
INTO R-1 COUNT IN R-2-SUB,
WITH POINTER PTR,
END-UNSTRING
UNSTRING S-3
DELIMITED BY ALL SPACES,
INTO OCC-R-2(R-2-SUB) COUNT IN R-3-ODOOBJ,
WITH POINTER PTR,
END-UNSTRING
UNSTRING S-3
DELIMITED BY ALL SPACES,
INTO ODO-R-3,
WITH POINTER PTR,
END-UNSTRING
この変更の影響を受ける UNSTRING ステートメントの場合、フラグが立てられた DELIMITER IN の ID は、その前の INTO 句内の受信側に依存していなければなりません。
01 DEL.
02 D-2-SUB PIC 9 VALUE IS 9.
02 OCC-D-2-GR.
03 OCC-D-2 PIC X OCCURS 9 TIMES.
02 D-3-ODOOBJ PIC 9 VALUE IS 9.
02 ODO-D-3.
03 FILLER PIC X OCCURS 1 TO 9 TIMES
DEPENDING ON D-3-ODOOBJ.
77 S-4 PIC X(20) VALUE IS "12 345 6789 .....".
77 R-1 PIC X(20) VALUE IS SPACES.
77 R-2 PIC X(20) VALUE IS SPACES.
77 R-3 PIC X(20) VALUE IS SPACES.
UNSTRING S-4
DELIMITED BY ALL SPACES,
INTO R-1 COUNT IN D-2-SUB,
R-2 DELIMITER IN OCC-D-2(D-2-SUB)
COUNT IN D-3-ODOOBJ,
R-3 DELIMITER IN ODO-D-3,
END-UNSTRING
この UNSTRING ステートメントは、CMPR2 と NOCMPR2 とでは異なる結果を生成します。2 番目 の INTO 句の DELIMITER IN の ID の添え字が最初の INTO 句の COUNT IN 受信側に よって変更されるためです。さらに、3 番目の INTO 句の DELIMITER IN の ID の長さは、2 番目の INTO 句 の COUNT IN 受信側によって変更されます。
CMPR2 の動作では、COUNT IN の ID に移される値が後続の INTO 句に使用されます。NOCMPR2 のもとでは、UNSTRING ステートメントの実行の開始時に有効な値が、すべての INTO 句に使用さ れます。
メッセージ 3213 でフラグが立てられた UNSTRING ステートメントは、複数の UNSTRING ステートメントに分割しな ければなりません。依存する INTO 句ごとに別々の UNSTRING ステートメントを使用してください。
77 PTR PIC 99.
MOVE 1 TO PTR
UNSTRING S-4
DELIMITED BY ALL SPACES,
INTO R-1 COUNT IN D-2-SUB,
WITH POINTER PTR,
END-UNSTRING
UNSTRING S-4
DELIMITED BY ALL SPACES,
INTO R-2 DELIMITER IN OCC-D-2(D-2-SUB)
COUNT IN D-3-ODOOBJ,
WITH POINTER PTR,
END-UNSTRING
UNSTRING S-4
DELIMITED BY ALL SPACES,
INTO R-3 DELIMITER IN ODO-D-3,
WITH POINTER PTR,
END-UNSTRING
この変更の影響を受ける UNSTRING ステートメントの場合、フラグが立てられた COUNT IN の ID は、その前の INTO 句内の受信側に依存していなければなりません。
01 C-2.
02 C-2-SUB PIC 9 VALUE IS 9.
02 OCC-C-2-GR.
03 OCC-C-2 PIC 9 OCCURS 9 TIMES.
77 S-5 PIC X(20) VALUE IS "12 345 6789........".
77 R-1 PIC X(20) VALUE IS SPACES.
77 R-2 PIC X(20) VALUE IS SPACES.
UNSTRING S-5
DELIMITED BY ALL SPACES,
INTO R-1 COUNT IN C-2-SUB,
R-2 COUNT IN OCC-C-2(C-2-SUB),
END-UNSTRING
この UNSTRING ステートメントは、CMPR2 と NOCMPR2 とでは異なる結果を生成します。2 番目 の INTO 句の COUNT IN の ID の添え字が最初の INTO 句の COUNT IN 受信側に よって変更されるためです。
CMPR2 での動作では、最初の INTO 句の COUNT IN の ID に移される値 が、2 番目の INTO 句に使用されます。NOCMPR2 のもとでは、UNSTRING ステートメントの実行の開始時に有効な値が使用されます。
メッセージ 3214 でフラグが立てられた UNSTRING ステートメントは、複数の UNSTRING ステートメントに分割しな ければなりません。依存する INTO 句ごとに別々の UNSTRING ステートメントを使用してください。
77 PTR PIC 99.
MOVE 1 TO PTR
UNSTRING S-5
DELIMITED BY ALL SPACES,
INTO R-1 COUNT IN C-2-SUB,
WITH POINTER PTR,
END-UNSTRING
UNSTRING S-5
DELIMITED BY ALL SPACES,
INTO R-2 COUNT IN OCC-C-2(C-2-SUB),
WITH POINTER PTR,
END-UNSTRING