サンプル
import filedb; void main() { char[] s; static int[] a=[1,256]; for(int k=0;k<a.length;k++){ try{remove("filedb.bin");}catch(Exception e){} printf("test tablesize=%d\n",a[k]); int starttime = getUTCtime(); for(int i=0;i<1000;i++){ s = std.string.toString(i); FileDB.addDBFile("filedb.bin",a[k],s); char[][] data = FileDB.readDBFile("filedb.bin",0,10); int size=0; try{size=cast(int)getSize("filedb.bin");}catch(Exception e){} printf("size=%d filesize=%d\n",data.length,size); for(int j=0;j<data.length;j++){ printf("%.*s\n",data[j]); } } int endtime = getUTCtime(); printf("time=%d\n",endtime-starttime); } printf("ok\n"); }
データ追加
ファイルに指定データを保存します。
指定ファイル名がなければ生成します。生成時にはaddressSizeで指定した分だけヘッダ情報のテーブルを作成します。
データの追加に成功した場合は、trueを、 データの追加に失敗した場合は、falseを返します。
データ削除
指定データ削除Noのデータを指定ファイル名のファイルから削除します。
内部の処理としては、ファイルのテーブルにある、削除フラグを立てます。
削除できればtrueを、削除できなければfalseを返します。
データ読み出し
指定ファイル名のファイルから、指定読み出し開始位置から、データ読み出し数分のデータを読み込み、返します。
データのサイズが、指定データ読み出し数よりも、少ない場合は、読み出せるだけ読み出し手返します。
まったく読み込めなかった場合は、サイズが0のchar[]配列を返します。
データサイズ取得
指定ファイル名内にあるデータの数を返します。
テスト用の関数です。
dmd src/filedb -version=FILEDB_TEST
としてコンパイルした場合に実行されます。