アクセス方式
順番探査方式と直接探査方式の二種類がある。
順番探査方式: ファイルの上から順に読み書きする。
直接探査方式: ファイル上の位置を指定して直接読み書きを行う。
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でデータの書きこまれていないレコード番号を指定すると次のようなエラーが出る。