次の例では、文字を調べて置換するために INSPECT ステートメントの使用法をいくつか示します。
次の例では、INSPECT ステートメントを使用して、データ項目 DATA-2 内の文字を調べ、置換します。データ項目内に現れる先行ゼロ (0) の数は、累算されて COUNTR に入れられます。文字 C の最初のインスタンスの後に続く文字 A の最初のインスタンスは、文字 2 に置き換えられます。
77 COUNTR PIC 9 VALUE ZERO.
01 DATA-2 PIC X(11).
. . .
INSPECT DATA-2
TALLYING COUNTR FOR LEADING “0”
REPLACING FIRST “A” BY “2” AFTER INITIAL “C”
| DATA-2 (実行前) | COUNTR (実行後) | DATA-2 (実行後) |
|---|---|---|
| 00ACADEMY00 | 2 | 00AC2DEMY00 |
| 0000ALABAMA | 4 | 0000ALABAMA |
| CHATHAM0000 | 0 | CH2THAM0000 |
次の例では、INSPECT ステートメントを使用して、データ項目 DATA-3 内の文字を調べ、置換します。引用符 (“) の最初のインスタンスより前にある各文字は、文字 0 で置き換えられます。
77 COUNTR PIC 9 VALUE ZERO.
01 DATA-3 PIC X(8).
. . .
INSPECT DATA-3
REPLACING CHARACTERS BY ZEROS BEFORE INITIAL QUOTE
| DATA-3 (実行前) | COUNTR (実行後) | DATA-3 (実行後) |
|---|---|---|
| 456”ABEL | 0 | 000“ABEL |
| ANDES”12 | 0 | 00000“12 |
| ”TWAS BR | 0 | “TWAS BR |
次の例では、AFTER 句と BEFORE 句を指定した INSPECT CONVERTING を使用して、データ項目 DATA-4 内の文字を調べ、置換します。 文字 / の最初のインスタンスより後にあり、文字 ?(もしあれば) の最初のインスタンスより前にあるすべての文字が、小文字から大文字に変換されます。
01 DATA-4 PIC X(11).
. . .
INSPECT DATA-4
CONVERTING
”abcdefghijklmnopqrstuvwxyz“ TO
”ABCDEFGHIJKLMNOPQRSTUVWXYZ“
AFTER INITIAL ”/“
BEFORE INITIAL”?“
| DATA-4 (実行前) | DATA-4 (実行後) |
|---|---|
| a/five/?six | a/FIVE/?six |
| r/Rexx/RRRr | r/REXX/RRRR |
| zfour?inspe | zfour?inspe |