ファイル

ファイルとは、一連の内部または外部レコードまたはファイル記憶単位です。 ファイルを装置に接続するときのアクセス方式を決定できます。 外部ファイルには、以下の 3 つの方法でアクセスできます。

内部ファイルには、順次アクセスのみを行うことができます。

外部ファイルの定義

外部ファイルをディスクまたは端末装置などの I/O デバイスに関係付ける必要があります。 外部ファイルは、プログラムがそのファイルを作成するときプログラムのために存在するか、 またはファイルは読み取りと書き込みにためにそのプログラムで使用可能になります。 外部ファイルを削除すると、そのファイルは存在しなくなります。 外部ファイルは存在しても、その中にレコードが入っていないことがあります。

+----------------------------------IBM 拡張----------------------------------+

外部ファイルをファイル名で指定するには、有効なオペレーティング・システムのファイル名を指定する 必要があります。 各ファイル名には、最大 255 文字まで指定できます。 絶対パス名を指定する場合、最大 1023 文字まで指定できます。

+------------------------------End of IBM 拡張-------------------------------+

先行する I/O ステートメントによって外部ファイルの位置が決められます。 外部ファイルを以下のように位置決めできます。

ファイル・アクセス方式

順次アクセス

順次アクセスを使用すると、ファイル内のレコードは、 そのファイルのレコードの論理順序に基づいて読み取られたり、書き取られたりします。 順次アクセスは、内部ファイルと外部ファイルの両方をサポートします。

外部ファイル

順次アクセス用に接続されたファイルには、レコードが書き込まれた 順に入ります。 レコードは、すべてが定様式 またはすべてが不定様式のいずれかでなければなりません。 ファイルの最後のレコードは、ファイル終了レコードでなければなりません。 ファイルが順次アクセス用に接続されている間は、直接アクセス FORTRAN 2003 の開始 またはストリーム・アクセス FORTRAN 2003 の終了 I/O ステートメントによって、 レコードを読み取ったり、書き込んだりしてはなりません。

内部ファイル

内部ファイルは、ベクトル添え字を持つ配列セクションではない文字変数です。 内部ファイルを作成する必要はありません。 内部ファイルは常に存在し、アプリケーションで使用可能です。

内部ファイルがスカラー文字変数の場合、ファイルは、そのスカラー 変数と等しい長さを持つ 1 つのレコードから成ります。 内部ファイルが文字配列の場合、配列の各エレメントは、ファイルのレコード となり、各レコードの長さは同一になります。

内部ファイルには、定様式レコードのみが入っている必要があります。 内部ファイルを指定できるステートメントは、READWRITE のみです。 WRITE ステートメントによって書き込まれたものが、レコード全体より小さい場合、 そのレコードの残りの部分にブランクが埋め込まれます。

直接アクセス

直接アクセスを使用して、外部ファイルのレコードを任意の順序で 読み取ったり、書き込んだりすることができます。 レコードは、すべてが定様式 またはすべてが不定様式のいずれかでなければなりません。 順次またはストリーム・アクセス、リスト指示形式設定、名前リスト形式設定、 または非アドバンス入出力ステートメントを使用して、レコードの読み取りまたは書き込みを行ってはなりません。 ファイルが順次アクセスに以前に接続されていた場合、ファイルの最後のレコードはファイル終了レコードになります。 ファイル終了レコードは、直接アクセス用に接続されたファイルの一部とは見なされません。

直接アクセス用に接続されているファイルでは、各レコードには、 ファイルのレコードの順序を識別するためのレコード番号が付いています。 レコード番号は整数値で、レコードの読み取りまたは書き込み時に 指定する必要があります。 レコードには順に番号が付けられています。 最初のレコードが 1 番になります。 レコードの読み取りまたは書き込みは、レコード番号順に行う必要は ありません。 たとえば、9 番、5 番、11 番のレコードを、間にあるレコードを 書き込まずに、この順序で書き込むこともできます。

直接アクセスに接続されたファイル内のレコードは、すべて同じ長さになります。この長さは、ファイルを接続するときに、OPEN ステートメントで指定 します。

直接アクセス用に接続されたファイル内のレコードを削除 することはできませんが、新しい値に書き直すことはできます。 まずレコードを書き込まなければ、レコードを読み取ることはできません。

+-------------------------Fortran 2003 ドラフト標準--------------------------+

ストリーム・アクセス

+----------------------------------IBM 拡張----------------------------------+

ストリーム・アクセス用の外部ファイルは、定様式 または不定様式のいずれかとして接続できます。 どちらの形式も、1 バイト・ファイル記憶単位で構成される 外部ストリーム・ファイルを使用します。 不定様式ストリーム・アクセス用に接続されたファイルはストリーム構造体のみを 持ちますが、定様式ストリーム・アクセス用に接続されたファイルは レコードとストリーム構造体の両方を持ちます。 これらの二重構造ファイルには以下の特性があります。

定様式ストリーム・アクセス用に接続されたファイルの最初のファイル記憶単位の位置が 1 になります。 後続の各記憶単位の位置は、直前の記憶単位よりも大きくなります。 一連の記憶単位の位置は必ずしも連続するとは限らず、 位置指定可能なファイルの読み取りまたは書き込みを位置順に行う必要はありません。 定様式ストリーム・アクセス用に接続されたファイル記憶単位の位置を 判別するには、INQUIRE ステートメントの POS= 指定子を使用します。 ファイルを位置指定できない場合は、INQUIRE ステートメントを使用して取得した値を使って、 そのファイルを位置指定することができます。 ファイル作成以降、記憶単位が書き込まれ、 接続が READ ステートメントを許可する限り、 ファイルに接続されている間はファイルからの読み取りを行います。 定様式ストリーム・アクセス用に接続されたファイルのファイル記憶単位は、 定様式ストリーム・アクセス入出力ステートメントによってのみ、 読み取りまたは書き込みを行うことができます。

不定様式ストリーム・アクセス用に接続されたファイルの最初のファイル記憶単位の位置が 1 になります。 連続する記憶単位の位置の値は、順番に 1 ずつ増えていきます。 位置指定可能なファイルの読み取りまたは書き込みを位置順に行う必要はありません。 ファイル作成以降、記憶単位が書き込まれ、接続が READ ステートメントを許可する限り、 ファイルに接続されている間はファイルから記憶単位を読み取ることができます。 不定様式ストリーム・アクセス用に接続されたファイルのファイル記憶単位は、 ストリーム・アクセス入出力ステートメントによってのみ、 読み取りまたは書き込みを行うことができます。

+------------------------------End of IBM 拡張-------------------------------+

+------------------------------End of IBM 拡張-------------------------------+

IBM Copyright 2003