8.12 バイナリファイルにランダムにアクセスする
大きなファイルの中間位置にあるバイナリレコードを読み込みたい。
- 最初にレコードのサイズを取得する。それにレコード番号を乗じて、バイトアドレスを取得する。最後にseekでバイトアドレスに移動し、readでレコードを読み込む。
$ADDRESS = $RECSIZE * $RECNO; seek(FH, $ADDRESS, 0) or die; read(FH, $BUFFER, $RECSIZE);
大きなファイルの中間位置にあるバイナリレコードを読み込みたい。
$ADDRESS = $RECSIZE * $RECNO; seek(FH, $ADDRESS, 0) or die; read(FH, $BUFFER, $RECSIZE);