COBOL2002 使用の手引 手引編


6.8.7 入力時の未使用項目の初期化機能

〈この項の構成〉

(1) 入力時の未使用項目の初期化機能

CSV編成ファイルからREAD文で入力したセルの個数が,対応するプログラム中の基本項目の個数より少ない場合,環境変数CBLCSVINITにYESを指定すると,セルと対応しない基本項目を初期化できます。

形式
CBLCSVINIT=YES
規則
  • 環境変数CBLCSVINITにYESを指定すると,CSV編成ファイルから入力したセルの個数が,対応するプログラム中の基本項目の個数より少ない場合,セルと対応しない基本項目を初期化します。

  • 環境変数CBLCSVINITを指定しなかった場合や,YES以外を指定した場合は,セルと対応しない基本項目は,初期化されません。

  • CSV編成ファイルで使用できる項目は,ブール項目以外で,用途が表示用(DISPLAY)の項目です。

  • この機能は,-NumCsvオプションを使用した場合にも有効です。

  • この機能を使用した場合,セルと対応しない基本項目には次の初期値データが設定されます。

    未使用基本項目の属性

    初期値データ

    英字項目

    半角空白文字(X'20')

    英数字項目

    英数字編集項目

    数字編集項目

    数字項目

    外部10進形式

    ゼロ(X'30')※1

    外部浮動小数点形式

    日本語項目

    全角空白文字(X'8140')※2※3

    日本語編集項目

    注※1

    初期値データは,数字項目にゼロを転記した結果となります。

    注※2

    環境変数LANGにEUCコードが指定されている場合,EUCコードの全角空白文字(X'A1A1')を初期値データに設定します。

    注※3

    Unicode機能を使用している場合,バイトオーダによって全角空白文字(X'0030'),または全角空白文字(X'3000')を初期値データに設定します。Unicode機能については,「27 Unicode機能」を参照してください。

注意事項
  • この機能を使用した場合,空白文字やゼロだけのセルデータを入力した項目と,初期化で空白文字やゼロが設定された項目の違いが判断できません。

    この違いを判断する必要がある場合は,この機能を使用しないで,次に示すようなプログラムを作成する必要があります。

    環境変数CBLCSVINITによって初期化されたかどうかを見分けるための処理

    ・セルと対応しない基本項目は,READ文の実行前にレコード領域をレコードとして存在しない値で初期化します。

    ・READ文実行後,レコードの内容を初期化した値と比較します。

  • この機能を使用して改行コードだけのレコードデータを入力した場合,ファイルに従属するすべての基本項目が未使用とみなされ,ファイルに従属するすべての基本項目が初期化されます。

  • この機能は,ACCEPT文を使用してCSVファイルを入力する場合には使用できません。