VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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/


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -