memo

ちょっとしたメモ書き(個別表示)

haxe-qdbm : (2006/05/16)
haXe用のQDBMバインディングです
haxe-qdbm.060517b.tar.gz
現在はDepot(ハッシュ表)とVilla(B+木)のみ用意
(5/17更新、Curia(ラージオブジェクト無し)を追加)

せっかくなので、Villaの走査はイテレータを定義してみました

db.setRange("B", "F", qdbm.Villa.VL_CMPLEX, true);
for(row in db){
neko.Lib.print(row.key + " : " + row.value);
neko.Lib.print("\n");
}

第3引数のqdbm.Villa.VL_CMPLEXというのは比較関数で、これは辞書順の比較を行うもので、上記例は"B"から"F"までカーソルを移動させながらキーと値を取得するもの。
一応whileで回しながらcurnextとかで一個一個カーソルを移動させることもできますが、ちょっと面倒かもしれません。
下のコードは、上のコードとだいたい同じことをします。


db.curjump("B", true);
do{
if(qdbm.Villa.VL_CMPLEX(db.curkey(), "F") > 0) break;
neko.Lib.print(db.curkey() + " : " + db.curval());
neko.Lib.print("\n");
}while(db.curnext());


とりあえず、これでしばらくはhaXeで遊べそうです。

: back