インテル® Fortran コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
ファイルの編成とは、レコードが記憶装置上でどのように物理的に配置されるかを示す言葉です。ここでは、主な 2 つのファイル編成の種類について説明します。
関連トピックでは次の項目について説明します。
レコード型は、ファイル内のすべてのレコード長が同じか、異なるか、あるいは他の規則を使用してレコードの終了位置や開始位置を定義しているかを示します。レコード型についての詳細は、「レコード型」を参照してください。
レコードアクセスとは、ファイル編成に関係なく、レコードがどのようにファイルから読み取られ、またどのようにファイルへ書き込まれるのかを示す言葉です。ファイルの編成方法は、ファイルに含まれたレコードのアクセス方法に必ずしも影響するとは限りません。レコードアクセスについての詳細は、「ファイルのアクセスとファイルの構造」と「レコードアクセス」を参照してください。
Fortran は、2 種類のファイル編成をサポートしています。
シーケンシャル
相対
ファイルの編成は、OPEN 文の ORGANIZATION キーワードによって指定できます。
デフォルトでは常に OPEN 文で ORGANIZATION= 'SEQUENTIAL' が使用されます。
シーケンシャル・ファイルは、磁気テープデバイスまたはディスクデバイスに格納できます。また、端末、パイプ、およびラインプリンターなど、その他の周辺デバイスは、シーケンシャル・ファイルとして使用できます。
相対ファイルは、ディスクデバイスに格納しなければなりません。
シーケンシャルに編成されたファイルは、ファイルに書き出される順番で配置されたレコードから構成されます。例えば、1 番目に書き出されるレコードは、ファイル内で 1 番目のレコードになり、2 番目に書き出されるレコードは、ファイル内で 2 番目のレコードとなります。つまり、レコードはファイルの終わりに追加されます。ファイルの終わり以外の場所にレコードを追加すると、書き込まれたレコードの最後の位置から切り捨てられます。
多くの場合、シーケンシャル・ファイルは、ファイル内の 1 番目のレコードから順番に読み取られます。また、ディスクに格納されている、固定長のレコード型を持つシーケンシャル・ファイルは、相対レコード番号によっても参照できます (直接アクセス)。
相対ファイル内には、セルと呼ばれる番号付きの位置があります。これらのセルは、長さが固定されており、1 を最初のセル、n をファイル内の最後のセルとして、1 ~ n の連続した番号が付けられています。個々のセルは、レコードを 1 つ含むか、または空であるかのどちらかです。相対ファイル内のレコードは、セル番号によって参照されます。セル番号は、レコードの相対レコード番号で、ファイルの先頭を基準とした、そのレコードの相対位置を示します。この相対レコード番号を指定することにより、レコードの位置にかかわらず、直接的にレコードを取得、追加、または削除できます。削除したレコードは、vms オプションを指定してプログラムをコンパイルした場合のみ検出できます。
相対ファイルを作成するときに、RECL 値を使用することで、固定長のセルのサイズを指定できます。指定したセルのサイズを超えなければ、セル内に可変長レコードを格納できます。