アクセス方式
順番探査方式と直接探査方式の二種類がある.
順番探査方式: ファイルの上から順に読み書きする.
直接探査方式: ファイル上の位置を指定して直接読み書きを行う.
open文のaccessで'sequential'(順番探査方式)か'direct'(直接探査方式)を指定する.デフォルトでは'sequential'.
順番探査方式
ファイルのどこからアクセスするか,open文のpositionで'rewind'(ファイル先頭)か'append'(ファイル終端)を指定する.デフォルトでは'rewind'.
file.datの中身は次のようになる.
2回目のopenでposition='append'を指定しなかった場合,元々書かれていたデータは上書きされ,file.datの中身は次のようになる.
順番探査方式: 上の行に戻る
backspace: 一行戻る
rewind : 先頭に戻る
ファイルを読むと自動的に次の行に移動するので,同じ行を複数回読み込みたいときはread文の後backspace文で一行戻る.
直接探査方式
read/write文のrecで読み書きするレコード番号を整数で指定する.直接探査なので,当然レコード番号は1から順番に使う必要は無い.
各レコード番号に記録されているデータサイズは同じでなければならない.データサイズはファイルを開く際にreclで指定する.単位はbyte.普通,直接探査方式で記録するのは配列であるから,データ型が4バイト整数や単精度浮動小数点数のときはrecl=4*(配列サイズ),8バイト整数や倍精度浮動小数点数のときはrecl=8*(配列サイズ)となる.
ちなみにreadでデータの書きこまれていないレコード番号を指定すると次のようなエラーが出る.