投稿日 | : 2004/09/11(Sat) 20:07 |
投稿者 | : Say |
Eメール | : |
URL | : |
タイトル | : Re: ログファイル作成 |
CSVのフォーマットに発言権があるなら、
例えば、
CSV風固定長テキストファイルにして、双方向リスト用の次行/前行ポインタ列を付加しておけば、
バイナリで読み書きすることにより好きな行を追加、修正、削除可能になります。
問題として、
●Logを順番にわかりやすく表示するには、専用のビューワーを作る必要がある。
●削除行は、新規行で上書きされるか、最適化処理をするまでファイル内に残骸が残る。
●先頭からのオフセットアドレスで読み書きするので、ファイルに人手が加わると破綻する可能性がある。
フォーマットは、例えば、
削除フラグ(1byte),絶対行(8byte),次行(8byte),前行(8byte),Log本文(512byte)改行
データ例
0,00000001,00000003,00000000,本文1(512byte)・・・
1,00000002,00000006,00000000,削除行1(512byte)・・・
0,00000003,00000005,00000001,本文2(512byte)・・・
0,00000004,99999999,00000005,本文4(最終行)(512byte)・・・
0,00000005,00000004,00000003,本文3(512byte)・・・
1,00000006,99999999,00000002,削除行2(最終行)(512byte)・・・
みたいなかんじ。
先頭行を管理行にして、本文第1行、本文最終行、削除第1行、本文最終行、全行数、全本文行数などを
保持しておけば、少しアクセス速度を上げられます。
別途インデックスファイルを用意すれば、二分検索できるようになりますから、
参照は高速になりますが、書き込みは低速になります。
また、インデックスファイルとCSVファイルの同期の問題も残ります。
参考までに技術資料です。
hhttp://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9712/rdbms/