順次ファイル

ADVANCING 句および END-OF-PAGE 句は、印刷されるページ上の各行の垂直位置決めを制御します。 印刷されるページが中間装置 (例えばディスク) 上で保持されると、それが編集またはブラウズされたときに、形式が予期した出力と異なることがあります。
注: 1 つの WRITE ステートメントの中に ADVANCING PAGE 句と END-OF-PAGE 句の両方を指定してはなりません。

外部で定義されたファイルの境界を超えて書き込みを試みると、WRITE ステートメントの処理が正常に完了せず、EXCEPTION/ERROR 条件が起こります。 レコード名の内容は影響を受けません。 その後 USE ステートメントのプログラミング上の注意事項で説明されているエラー処理の規則に従って、処理が行われます。

装置タイプ TAPEFILE または DISKETTE 上の順次ファイルの場合、 マルチボリューム OUTPUT ファイルのボリュームの終わりが検出されると、WRITE ステートメントによって以下の操作が行われます。
  1. 標準の終了ボリューム・ラベル・プロシージャーが実行されます。
  2. ボリュームの切り替えが行われます。
  3. 標準の開始ボリューム・ラベル・プロシージャーが実行されます。

ボリュームの終わりに達したという標識はプログラムに返されません。

構文図を読む構文図をスキップする
WRITE ステートメント - 形式 - 順次ファイル

>>-WRITE--レコード名-1--+------------+------------------------------->
                   '-FROM--ID-1-'   

>--+----------------------------------------------------+------->
   '-+-BEFORE-+--+-----------+--+-+-ID-2-+--+-------+-+-'   
     '-AFTER--'  '-ADVANCING-'  | '-整数-1-'  +-LINE--+ |     
                                |           '-LINES-' |     
                                +-簡略名-1---------------+     
                                '-PAGE----------------'     

>--+----------------------------+------------------------------->
   |          (1)               |   
   '-NULL-MAP------+----+--ID-9-'   
                   '-IS-'           

>--+--------------------------------------+--------------------->
   '-+----+--+-END-OF-PAGE-+--命令ステートメント-1-'   
     '-AT-'  '-EOP---------'                  

>--+-------------------------------------------+---------------->
   '-NOT--+----+--+-END-OF-PAGE-+--命令ステートメント-2-'   
          '-AT-'  '-EOP---------'                  

>--+-----------+-----------------------------------------------><
   '-END-WRITE-'   

注:
  1. IBM 拡張
レコード名-1
データ部の FD 記入項目で定義されていなければなりません。 レコード名-1 は修飾できます。 レコード名-1 をソート・ファイルまたはマージ・ファイルと関連付けてはなりません。

OCCURS DEPENDING ON (ODO) 配列が入ったレコードの WRITE を実行するには、その前に ODO 配列のサイズを有効な数値に確実に設定する必要があります。

IBM Extension

レコード名-1 は 浮動小数点データ項目にすることができます。

End of IBM Extension
IBM Extension

レコード名-1 は DBCS データ項目を定義できます。 レコード名-1 が DBCS データ項目の場合、ID-1 は、DBCS データ項目でなければなりません。

End of IBM Extension
FROM
FROM を指定すると、実行結果は次の場合と同じになります。
MOVE identifier-1 TO record-name-1
WRITE record-name-1

移動は、CORRESPONDING 句のない MOVE ステートメントの規則に従って実行されます。

WRITE ステートメントの実行後、情報は ID-1 ではまだ使用可能ですが、レコード名-1 では使用不可になります。 (INTO/FROM ID 句を参照。)

ID-1
英数字データ項目または数字編集データ項目でなければなりません。 データはこのフィールドから受け入れフィールドへ転送されます。

ID-1 は、英数字または DBCS 関数 ID の名前にすることができます。

IBM Extension

ID-1 は、浮動小数点にすることも、日時データ項目にすることもできます。

End of IBM Extension
ID-2
整数データ項目でなければなりません。

ファイルの最大レコード・サイズはファイルの作成時に設定され、後で変更することはできません。

レコード名-1 と ID-1 で同じ記憶域を参照してはなりません。

WRITE ステートメントの実行後には、次のいずれかの場合を除き、レコードはレコード名-1 で使用可能でなくなります。

これらのいずれかの場合には、レコードはレコード名-1 でまだ使用できます。

ファイル位置標識は、WRITE ステートメントの実行によって影響されません。

ファイルの中にレコードを保管するのに必要な文字桁数は、COBOL プログラムの中でそのレコードの論理記述によって定義された文字桁数と同じであってもなくてもかまいません。 (PICTURE 文節の編集および USAGE 文節を参照してください。)

ファイル制御記入項目で FILE STATUS 文節が指定されている場合には、WRITE ステートメントの実行時に、 実行が成功するかどうかに関係なく、関連する状況キーが更新されます。

I-O モードでオープンされた順次ファイルに対しては、WRITE ステートメントを実行することはできません。

関連情報