dtmpl / xmlfiledb


xmlfiledb.d

XMLデータをファイルに追加保管していくクラスです。 ヘッダ部にデータの長さ等を持っているので比較的高速で使うことが出来ます。 内部でFileDBクラスを用いています。FileDBクラスは、単なるstaticな関数の集合ですが、 このクラスは、カプセル化しています。?カプセル化で良いのか?

コメント

  • ceYMXyEEbU -- mcgybfujqtq? 2008-08-28 17:55:19 (木)
  • HcqtxKrZbN -- cgjxwca? 2008-08-28 17:56:06 (木)

目次

class XMLFileDB

サンプル

import xmlfiledb;
void main()
{

}

this(char[] filename,int tablesize)

コンストラクタ

  • filename ファイル名
  • tablesize テーブルサイズ

指定ファイル名のファイルにアクセスすることを目的としてクラスを作成します。 テーブルサイズは、ファイルのヘッダ情報の予約サイズです。 テーブルサイズ分のデータが書き込まれるまでは、ヘッダ情報の一部を書き換えた後、 ファイルの後ろにデータを書き込み、全体を書き換えないため、全データを読み書きするよりも、 高速にアクセスできます。 データがヘッダのサイズを超えると、テーブルサイズ分ヘッダ情報のサイズが増えます。


bool add(Dom d)

データ追加

  • d XMLデータ

ファイルにXMLデータを追加します。

Dom[] read(int offset,int size)

データ読み込み

  • offset データ読み出し開始位置
  • size データ読み出し数

指定読み出し開始位置から、データ読み出し数分のデータを読み込み、返します。

データのサイズが、指定データ読み出し数よりも、少ない場合は、読み出せるだけ読み出し手返します。

まったく読み込めなかった場合は、サイズが0のDom配列を返します。

int getSize()

データサイズ取得

ファイル内にあるデータの数を返します。

bool remove(int offset)

データ削除

  • offset データ削除No

指定データ削除Noのデータを削除します。

削除できればtrueを、削除できなければfalseを返します。

void main()

テスト用

dmd src/xmlfiledb -version=XMLFILEDB_TEST

としてコンパイルした場合に実行されます。

*MenuBar

人気の10件

  • counter: 3614
  • today: 1
  • yesterday: 0
  • online: 1