COBOL2002 ユーザーズガイド

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

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

<この項の構成>
(1) 入力時の未使用項目の初期化機能

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

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

形式
CBLCSVINIT=YES

規則
  • 環境変数CBLCSVINITにYESを指定すると,CSV編成ファイルから入力したセルの個数が,対応するプログラム中の基本項目の個数より少ない場合,セルと対応しない基本項目を初期化します。
  • 環境変数CBLCSVINITを指定しなかった場合や,YES以外を指定した場合は,セルと対応しない基本項目は,初期化されません。
  • CSV編成ファイルで使用できる項目は,ブール項目以外で,用途が表示用(DISPLAY)の項目です。
  • この機能は,-NumCsvオプションを使用した場合にも有効です。
  • この機能を使用した場合,セルと対応しない基本項目には次の初期値データが設定されます。
    未使用基本項目の属性 初期値データ
    英字項目 半角空白文字(X'20')
    英数字項目
    英数字編集項目
    数字編集項目
    数字項目 外部10進形式 ゼロ(X'30')※1
    外部浮動小数点形式
    日本語項目 全角空白文字(X'8140')※2
    日本語編集項目

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

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

注意事項
  • この機能を使用してCSV編成ファイルの入力を行うプログラムは,COBOL2002またはCOBOL85 07-02以降でコンパイルする必要があります。COBOL85 07-02 未満でコンパイルしたCOBOLプログラムでこの機能を使用した場合,警告メッセージが出力され,環境変数CBLCSVINITの指定が無効となります。
    警告メッセージは,COBOL85 07-02 未満でコンパイルしたプログラムのCSV編成ファイル入出力時に,ファイル単位で最初に実行したREAD文でだけ出力されます。その後のREAD文では,警告メッセージは出力されませんが,環境変数CBLCSVINITの指定は無効となります。
  • この機能を使用した場合,空白文字やゼロだけのセルデータを入力した項目と,初期化で空白文字やゼロが設定された項目の違いが判断できません。
    この違いを判断する必要がある場合は,この機能を使用しないで,次に示すようなプログラムを作成する必要があります。
    環境変数CBLCSVINITによって初期化されたかどうかを見分けるための処理
    ・セルと対応しない基本項目は,READ文の実行前にレコード領域をレコードとして存在しない値で初期化します。
    ・READ文実行後,レコードの内容を初期化した値と比較します。
  • この機能を使用して改行コードだけのレコードデータを入力した場合,ファイルに従属するすべての基本項目が未使用とみなされ,ファイルに従属するすべての基本項目が初期化されます。
  • この機能は,ACCEPT文を使用してCSVファイルを入力する場合には使用できません。

注※
COBOL85でコンパイルしたプログラムが動作できるシステムでだけ警告メッセージが出力されます。
COBOL85でコンパイルしたCOBOLプログラムの動作を次に示します。
COBOL85のバージョン 環境変数CBLCSVINITの指定 備考
COBOL85 07-02未満 無効 警告メッセージを出力し処理を続行する
COBOL85 07-02以降 有効

(凡例)
−:記述なし