投稿日 | : 2004/05/31(Mon) 22:37 |
投稿者 | : Say |
Eメール | : |
URL | : |
タイトル | : Re^3: Binaryで開いたファイルについて |
シーケンシャルデータの場合、本質的にデータの挿入はできません。
バイナリで、同一ファイルに対し挿入処理を行う場合、次のようになるかと。
1.ファイルを開き、挿入位置までシーク
2.挿入位置以降のデータをメモリなどに保持
3.挿入位置に挿入データを書き込み。
4.挿入データの後ろに保持したデータを書き込み。
5.ファイルクローズ。
このやりかただと、処理中に異常があるとファイルが失われる危険がありますから、
安全を考えると、事前にコピーしてから実施したほうがよろしいかと。
また、挿入位置が複数ある場合、いちいち挿入位置ごとに上記処理を行うより、
1.メモリに一括読み込み
2.メモリ上で挿入処理
3.メモリから一括書き込み
を行ったほうが高速に行える可能性があります。
どちらがどの程度高速化は挿入位置・回数・サイズや
CPU、メモリ、HDDの速度などにより一概に言えませんので、
処理速度が重要なら、実際に測定してみるのがいいでしょう。