# INITIALIZE文

説明書の該当箇所: 6.5.18 INITIALIZE文

  INITIALIZE文.cob    Standard 版

INITIALIZE文 が項目をどんな値にするかを確かめます。
正しく動くと OK だけが並びます。

# 項目の種類ごとの初期値

INITIALIZE は「ゼロ」で埋めるのではなく、項目の種類に応じた値を入れます。

  数字項目      PIC 9(5)     → 0
  単精度2進     COMP-1       → 0  (2バイト)
  倍精度2進     COMP-2       → 0  (4バイト)
  英数字項目    PIC X(5)     → 空白

  INITIALIZE i j k m.
  IF i = 0 AND j = 0 AND k = 0 AND m = SPACE

# 集団項目に対して行うと

集団項目を指定すると、中の項目それぞれが種類に応じて初期化されます。

  ・名前の無い項目(FILLER)は初期化されません。VALUE で与えた値が残ります
  ・OCCURS を含む集団項目でも、全要素が対象になります

サンプルでは、初期化のあとの集団項目の中身を1つの文字列として照合して
います。X"00" が並んでいるところが COMP-1 / COMP-2 の 0 です。

  IF group-item = "00000" & X"0000" & X"00000000" & "abcde     "

  "00000"        PIC 9(5) の 0
  X"0000"        COMP-1 の 0。単精度2進なので2バイト
  X"00000000"    COMP-2 の 0。倍精度2進なので4バイト

"abcde" が残っているのが、初期化されない FILLER です。
