WRITE(書出し)文は,レコードを出力ファイルに書き出す.また,論理ページの縦方向の行送りも行う.
【書き方】
(1) |
レコード名-1と一意名-1とは,同じ記憶領域を参照してはならない. |
(2) |
レコード名-1は,データ部のファイル節で指定したレコードの名前とする.ファイル名で修飾してもよい. |
(3) |
一意名-2は,整数項目でなければならない. |
(4) |
整数-1は正でも0でもよいが,負であってはならない. |
(5) |
一つのWRITE文に,ADVANCING PAGE(ページ送り)指定とEND-OF-PAGE(ページ終了)指定の両方を書いてはならない. |
(6) |
END-OF-PAGE(ページ終了)指定又はNOT END-OF-PAGE指定を書くときには,関連したファイルに対してファイル記述項でLINAGE(行数)句を書いておかなければならない. |
(7) |
END-OF-PAGEとEOPは同義語であり,どちらを書いてもよい. |
(8) |
印字用ファイルにのみ,END-OF-PAGE指定,ADVANCING指定が記述できる. |
(9) |
一意名-1が,明に又は暗にCHARACTER TYPE句を指定した項目を従属する場合,一意名-1は部分参照してはならない. |
(1) |
レコード名-1に関連するファイル名のファイルは,WRITE文を実行する前に出力モード又は拡張モードで開いておかなければならない. |
||||||||||||||
(2) |
WRITE文の実行が成功すると,その論理レコードはレコード領域中で使用不能となる.ただし,レコード名-1と関連するファイル名がSAME RECORD AREA(レコード領域の共用)句で指定されている場合には,WRITE文によってレコードが使用不能になることはない.その論理レコードは,レコード名-1に関連するファイルと同様に,同じSAME RECORD AREA句で参照される他のファイル,つまり出力ファイルのレコードとして,そのプログラムで使用可能である. |
||||||||||||||
(3) |
FROM(から)指定のあるWRITE文の実行結果は,以下に示す文をこの順で実行したものと等しい.
|
||||||||||||||
(4) |
WRITE文の実行を完了した後,SAME RECORD AREA句の指定がある場合を除いてレコード名-1の領域の情報は使用不能になる.ただし,一意名-1の領域の情報は使用可能である. |
||||||||||||||
(5) |
ファイル位置指示子は,WRITE文の実行によっては変更されない. |
||||||||||||||
(6) |
WRITE文の実行によって,レコード名-1に関連するファイル名の入出力状態の値が更新される. |
||||||||||||||
(7) |
WRITE文の実行によってレコードが入出力管理システムに渡される. |
||||||||||||||
(8) |
レコード名-1のレコード中の文字位置の個数は,レコード名-1に関連するファイル名に指定したレコード記述項の最大の文字位置の個数より大きくてはならない.この場合には,WRITE文の実行は不成功となり,書出し動作は行なわれず,レコード領域の内容は変わらず,レコード名-1に関連するファイルの入出力状態にこの状態の原因を示す値が設定される.
|
||||||||||||||
(9) |
WRITE文の実行中にページ終了条件が起こらないとき,END-OF-PAGE指定が書かれていても無視され,次の動作が起こる.
|
||||||||||||||
(10) |
END-WRITE(WRITE文の終わり)指定は,WRITE文の範囲を区切る. |
||||||||||||||
(11) |
順ファイルの直前直後の関係は,ファイルを生成する時にWRITE(書出し)文の順序によって定まり,ファイルの終わりにレコードを追加する場合以外に変わることはない. |
||||||||||||||
(12) |
順ファイルが拡張モードで開かれるとき,WRITE文の実行によって,そのファイルが出力モードで開かれているかのように,ファイルの終わりにレコードが追加される.そのファイル中にレコードがあれば,OPEN EXTEND文の実行後最初に書かれるレコードは,そのファイルの最後のレコードの直後に続く. |
||||||||||||||
(13) |
外部で定義された区域を超えて書き出そうとした場合,例外(exception)条件になる.このときレコード領域の内容は影響を受けず,以下に示す動作が行われる.
|
||||||||||||||
(14) |
物理順ファイルのリール/ユニット終了になり,かつそのファイルの外部で定義された区域を超えていないとき,次の動作がとられる.
|
||||||||||||||
(15) |
ADVANCING(行送り)指定とEND-OF-PAGE指定は,印字ページの表現の縦方向の行制御を行う.ADVANCING指定を書かないと,AFTER ADVANCING 1 LINEが指定されたものとして自動的な行送りを行う.ADVANCING指定を書くと,行送りは次による.
|
||||||||||||||
(16) |
END-OF-PAGE指定のあるWRITE文の実行中に,印字ページの表現が論理的な終わりに達すると,END-OF-PAGE指定の無条件文-1が実行される.論理的な終わりは,レコード名-1に関連したLINAGE句で指定される. |
||||||||||||||
(17) |
書き出されるレコードのファイル記述項にLINAGE句があれば,以下に示す場合にページ終了条件又はページあふれ条件になる.
|
||||||||||||||
(18) |
WRITE文による出力先が日本語処理装置の場合,レコード中の各項目は表4.8 の規則に従って表示される. |
表4.8 CHARACTER TYPE句の適用規則
FROM 指定の有無 |
下記領域におけるC.T句指定の 日本語項目又は日本語編集項目の有無 |
適用規則 |
|
レコード名 |
一意名 |
||
無 |
有 |
− |
レコード名の中で書かれたC.T句の指定に従う. |
有 |
無 |
有 |
一意名の中で書かれたC.T句の指定に従う. |
有 |
|||
有 |
無 |
C.T句は無視される. |
備考."C.T"は,CHARACTER TYPE句を示す.