ファイル

ファイル編成とは,記録が記憶装置上にどのように物理的に配置されるかを示す言葉です。

記録形式とは,ファイルに含まれる記録がすべて同じ長さなのか,可変長なのか,または 1 つの記録が終了し,別の記録が始まる場所を定義するために他の規則を使っているのかを示す言葉です。

記録探査とは,ファイルの編成にかかわらず,ファイルから記録を読み取ったり,ファイルに記録を書き出すために使われる方式のことです。ファイル編成は,そのファイル中の記録が探査される方式を必ずしも決定しません。

Fortran は,順番編成と相対編成の 2 種類のファイル編成をサポートしています。ファイル編成は,OPEN 文の ORGANIZATION 指定子によって指定されます。相対編成ファイルは,ディスク上に格納されなくてはなりません。ただし,順番編成ファイルは,磁気テープとディスクのどちらにも格納できます。ターミナル,パイプ,カードリーダ,ラインプリンタなどの他の周辺機器は,順番編成ファイルとして扱われます。

順番編成ファイルは,ファイルに書き出される順番に配置された記録から構成されます。1 番目に書き出される記録はファイル内の 1 番目の記録,2 番目に書き出される記録は,ファイル内の 2 番目の記録,以下同様です。このため,記録の追加は,ファイル終了にしかできません。ファイル終了以外の場所に記録を追加しようと試みると,直前に書き出した記録終了が切り捨てられます。

相対編成ファイル中には,セルと呼ばれる番号付きの位置があります。これらのセルは長さが固定されており,1 を最初のセル,n をファイル内の最後のセルとして,1 ~ n の連続した番号が付けられています。個々のセルは,1 つの記録を含んでいるか空であるかのどちらかです。相対編成ファイル中の記録は,セル番号に従って探査されます。セル番号は記録の相対編成記録番号で,その記録のファイルの先頭を基準とした相対位置を示しています。相対編成記録番号を指定することで,記録の位置にかかわらず,直接に取得,追加,または削除を行うことができます。(削除された記録の検出は,プログラムをコンパイルする時に /vms オプションを指定していないと行えません。)

Fortran は,2 つのファイル探査方式 (順番と直接),および 3 種類のファイル構造 (書式付き,書式なし,および 2 進) をサポートしています。順番探査ファイルと直接探査ファイルは,この 3 種類のどれかのファイル構造を持つことができます。つまり,次の種類のファイルが存在します。

個々のファイルの種類にはそれぞれ利点があり,どれが最適かは開発しているアプリケーションに依存します。

すべてのファイルは,記録で構成されています。個々の記録は,ファイル内の 1 つの項目です。これはターミナルからの行である場合もありますし,磁気テープまたはディスク・ファイル上の論理記録である場合もあります。1 ファイル中のすべての記録は同じ形式です。

Fortran では,記録に書き出されるバイト数は記録長と同じであるか,それよりも小さくなくてはなりません。個々の書式なし READ または WRITE 文ごとに 1 つの記録が読み書きされます。書式付き READ または WRITE 文は,斜線 (/) 形編集記述子を使って複数の記録を転送することができます。

2 進ファイルでは,1 つの READ または WRITE 文は,転送されるバイト数に対応するために必要な数の記録を読み書きします。出力時には,不完全な書式付き記録には空白が充填されます。不完全な書式なしおよび 2 進記録には,不定バイト (ゼロ) が充填されます。

関連情報