COBOL2002 ユーザーズガイド

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

5.3.3 INSPECT文

INSPECT文は,データ項目中の文字や文字列の出現回数を数えたり,それらをほかの文字列で置き換えたりします。

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

INSPECT文の例を次に示します。COUNT-nは,その文の実行の直前にゼロになっているものと仮定します。

(例1)
実行例
 
   INSPECT ITEM TALLYING
       COUNT-0 FOR ALL 'AB', ALL 'D'
       COUNT-1 FOR ALL 'BC'
       COUNT-2 FOR LEADING 'EF'
       COUNT-3 FOR LEADING 'B'
       COUNT-4 FOR CHARACTERS.
 
   INSPECT ITEM REPLACING
       ALL 'AB' BY 'XY', 'D' BY 'X'
       ALL 'BC' BY 'VW'
       LEADING 'EF' BY 'TU'
       LEADING 'B' BY 'S'
       FIRST 'G' BY 'R'
       FIRST 'G' BY 'P'
       CHARACTERS BY 'Z'.
実行結果
ITEMの初期値 COUNT-0 COUNT-1 COUNT-2 COUNT-3 COUNT-4 ITEMの終了値
EFABDBCGABCFGG 3 1 1 0 5 TUXYXVWRXYZZPZ
BABABC 2 0 0 1 1 SXYXYZ
BBBC 0 1 0 2 0 SSVW

(例2)
実行例
 
   INSPECT ITEM TALLYING
     COUNT-0 FOR CHARACTERS
     COUNT-1 FOR ALL 'A'.
   INSPECT ITEM REPLACING
     CHARACTERS BY 'Z'
     ALL 'A' BY 'X'.
実行結果
ITEMの初期値 COUNT-0 COUNT-1 ITEMの終了値
BBB 3 0 ZZZ
ABA 3 0 ZZZ

(例3)
実行例
 
    INSPECT ITEM TALLYING
      COUNT-0 FOR ALL 'AB' BEFORE 'BC'
      COUNT-1 FOR LEADING 'B' AFTER 'D'
      COUNT-2 FOR CHARACTERS AFTER 'A' BEFORE 'C'.
    INSPECT ITEM REPLACING
      ALL 'AB' BY 'XY' BEFORE 'BC'
      LEADING 'B' BY 'W' AFTER 'D'
      FIRST 'E' BY 'V' AFTER 'D'
      CHARACTERS BY 'Z' AFTER 'A' BEFORE 'C'.
実行結果
ITEMの初期値 COUNT-0 COUNT-1 COUNT-2 ITEMの終了値
BBEABDABABBCABEE 3 0 2 BBEXYZXYXYZCABVE
ADDDDC 0 0 4 AZZZZC
ADDDDA 0 0 5 AZZZZZ
CDDDDC 0 0 0 CDDDDC
BDBBBDB 0 3 0 BDWWWDB

(例4)
実行例
 
    INSPECT ITEM TALLYING
      COUNT-0 FOR ALL 'AB' AFTER 'BA' BEFORE 'BC'.
    INSPECT ITEM REPLACING
      ALL 'AB' BY 'XY' AFTER 'BA' BEFORE 'BC'.
実行結果
ITEMの初期値 COUNT-0 ITEMの最終値
ABABABABC 1 ABABXYABC

(例5)
実行例
   INSPECT ITEM CONVERTING
     'ABCD' TO 'XYZX' AFTER QUOTE BEFORE '#'.
 
上記のINSPECT文は,次のINSPECT文と同じです。
 
    INSPECT ITEM REPLACING
      ALL 'A' BY 'X' AFTER QUOTE BEFORE '#'
      ALL 'B' BY 'Y' AFTER QUOTE BEFORE '#'
      ALL 'C' BY 'Z' AFTER QUOTE BEFORE '#'
      ALL 'D' BY 'X' AFTER QUOTE BEFORE '#'.
実行結果
ITEMの初期値 ITEMの最終値
AC'AEBDFBCD#AB'D AC'XEYXFYZX#AB'D