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-0COUNT-1COUNT-2COUNT-3COUNT-4ITEMの終了値
EFABDBCGABCFGG31105TUXYXVWRXYZZPZ
BABABC20011SXYXYZ
BBBC01020SSVW
(例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-0COUNT-1ITEMの終了値
BBB30ZZZ
ABA30ZZZ
(例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-0COUNT-1COUNT-2ITEMの終了値
BBEABDABABBCABEE302BBEXYZXYXYZCABVE
ADDDDC004AZZZZC
ADDDDA005AZZZZZ
CDDDDC000CDDDDC
BDBBBDB030BDWWWDB
(例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-0ITEMの最終値
ABABABABC1ABABXYABC
(例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'DAC'XEYXFYZX#AB'D