9.7 報告書ファイルの入力

報告書ファイルを読んでレコードを入力するときの形式は,レコード形式と報告書記述項でCODE句を指定しているかどうかによって次のように異なります。

<この節の構成>
(1) 固定長でCODE句の指定がない場合
(2) 固定長でCODE句の指定がある場合
(3) 可変長の場合

(1) 固定長でCODE句の指定がない場合

順編成固定長の形式では読めません。

(2) 固定長でCODE句の指定がある場合

順編成固定長で読むためには,利用者レコード長に制御コード分の2を加えた形式で読み込む必要があります。

ただし,-IgnoreLCCオプションの指定があるときは,先頭1バイトが出力されないため,レコード長に1を加えた形式で読み込みます。

(例)-IgnoreLCCオプション指定なしの場合

      IDENTIFICATION DIVISION.
      PROGRAM-ID. SAMPLE1.
      ENVIRONMENT DIVISION.
      INPUT-OUTPUT SECTION.
      FILE-CONTROL.
      SELECT FILE1 ASSIGN SYS001.
      DATA DIVISION.
      FILE SECTION.
      FD FILE1.
      01 REC-1.
       02 R-DATA1 PIC X(1).             …1.
       02 R-DATA2 PIC X(1) or PIC X(2). …2.
       02 R-DATA3 PIC X(n).             …3.
       02 R-DATA4 PIC X(1).             …4.
      WORKING-STORAGE SECTION.
            :
      PROCEDURE DIVISION.
            :
          OPEN INPUT FILE1.
            :
          READ FILE1.
            :
          CLOSE FILE1.
          STOP RUN.

  1. 行制御コードX'0C'(改ページ)またはX'0A'(改行)
  2. ファイル作成時にCODE句で指定した文字の長さ分(1バイトまたは2バイト)を確保する。
  3. ファイル作成時にRD句で指定したレコード長(2.の長さは含まない)
  4. 行制御コードX'0D'(復帰)

(3) 可変長の場合

可変長の場合,CODE句の指定があるかどうかに関係なく可変長ファイルとして作成されないため,順編成可変長では読めません。また,順編成固定長でも読めません。