<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>GDBM</title> <meta http-equiv="Content-type" content="text/html; charset=UTF-8" /> <link href="default.css" type="text/css" rel="stylesheet" /> <link href="refm177.html" rel="next" /> <link href="refm175.html" rel="prev" /> <link href="index.html" rel="start" /> </head> <body> <div class="navigator"><span class="navigator">[<a href="index.html">MAIN</a>][<a href="refm543.html">INDEX</a>] [<a href="index.html">TOP</a>][<a href="refm175.html">UP</a>][<a href="refm175.html"><-PREV</a>][<a href="refm177.html">NEXT-></a>]</span></div> <hr /> <h1><a name="L003016" id="L003016">GDBM</a></h1> <p>GDBMファイルをアクセスするクラス.キー,データともに文字列でなければな らないという制限と,データがファイルに保存されるという点を除いては Hashクラスと全く同様に扱うことがでます.</p> <h2><a name="L003017" id="L003017">スーパークラス:</a></h2> <ul> <li><a href="refm030.html">Object</a></li> </ul> <h2><a name="XXINVALIDXX" id="XXINVALIDXX">インクルードしているモジュール: </a></h2> <ul> <li><a href="refm065.html">Enumerable</a></li> </ul> <h2><a name="L003019" id="L003019">クラスメソッド:</a></h2> <dl> <dt><a name="L003020" id="L003020">new(dbname[, mode[, flags]])</a></dt> <dt><a name="L003021" id="L003021">open(dbname[, mode[, flags]])</a></dt> <dt><a name="L003022" id="L003022">open(dbname[, mode[, flags]]) {|db| ...}</a></dt> <dd> <p><var>dbname</var>で指定したデータベースをモードを <var>mode</var>に設定してオープンします.<var>mode</var>の省 略値は0666です.<var>mode</var>として<code>nil</code>を指定 するとデータベースが存在しない時には新たなデータベースを作らず <code>nil</code>を返します.</p> <p><var>flags</var> には,GDBM::FAST, GDBM::SYNC, GDBM::NOLOCK を の論理和を指定します.デフォルト値は指定なし(つまり0)です.</p> <p>Ruby 1.8.2 以降では、flags に GDBM::READER, GDBM::WRITER, GDBM::WRCREAT, GDBM::NEWDB のどれかを与えて読み書きのモードを指定できます。 これらをどれも指定しなかった場合には、 GDBM::WRCREAT, GDBM::WRITER, GDBM::READER の順で試します。</p> <p>ブロックを指定した場合,オープンしたGDBMオブジェクトを 引数にブロックを実行します.実行後GDBMオブジェクトをクローズ し,openメソッドはブロックの結果を返します.これはちょうど 以下と同じです.</p> <pre>dbm = GDBM.open(file) begin yield dbm ensure dbm.close end</pre> </dd> </dl> <h2><a name="L003023" id="L003023">メソッド:</a></h2> <dl> <dt><a name="L003024" id="L003024">self[key]</a></dt> <dd> <p><var>key</var>をキーとする値を返します.</p> </dd> <dt><a name="L003025" id="L003025">self[key]=value</a></dt> <dd> <p><var>key</var>をキーとして,<var>value</var>を格納します.</p> </dd> <dt><a name="L003026" id="L003026">cachesize = size</a></dt> <dt><a name="L003027" id="L003027">clear</a></dt> <dd> <p>DBMファイルを空にします.</p> </dd> <dt><a name="L003028" id="L003028">close</a></dt> <dd> <p>DBMファイルをクローズします.以後の操作は例外を発生させます.</p> </dd> <dt><a name="L003029" id="L003029">delete(key)</a></dt> <dt><a name="L003030" id="L003030">delete(key) {|key| ... }</a></dt> <dd> <p><var>key</var>をキーとする項目を削除します.</p> <p>指定したキーが存在しなければnilを返します,このとき ブロックを指定していれば,ブロックを評価します.</p> </dd> <dt><a name="L003031" id="L003031">delete_if { |key, value| ... }</a></dt> <dt><a name="L003032" id="L003032">reject! { |key, value| ... }</a></dt> <dd> <p>ブロックを評価した値が真であれば該当する項目を削除します.</p> </dd> <dt><a name="L003033" id="L003033">each {|key, value| ... }</a></dt> <dt><a name="L003034" id="L003034">each_pair {|key, value| ... }</a></dt> <dd> <p>各要素に対するイテレータ.</p> </dd> <dt><a name="L003035" id="L003035">each_key {|key| ... }</a></dt> <dd> <p>全てのkeyに対して繰り返すイテレータ.</p> </dd> <dt><a name="L003036" id="L003036">each_value {|value| ... }</a></dt> <dd> <p>全てのvalueに対して繰り返すイテレータ.</p> </dd> <dt><a name="L003037" id="L003037">empty?</a></dt> <dd> <p>データベースが空の時,真を返します.</p> </dd> <dt><a name="L003038" id="L003038">fastmode = bool</a></dt> <dt><a name="L003039" id="L003039">syncmode = bool</a></dt> <dd> <p>オープンしているGDBMオブジェクトのモードを変更します.下記の定数 GDBM::FAST、GDBM::SYNC を参照してください.</p> </dd> <dt><a name="L003040" id="L003040">fetch(key[,ifnone])</a></dt> <dt><a name="L003041" id="L003041">fetch(key) {|key| ... }</a></dt> <dd> <p>ハッシュと同じ</p> </dd> <dt><a name="L003042" id="L003042">has_key?(key)</a></dt> <dt><a name="L003043" id="L003043">key?(key)</a></dt> <dt><a name="L003044" id="L003044">include?(key)</a></dt> <dt><a name="L003045" id="L003045">member?(key)</a></dt> <dd> <p>keyがデータベース中に存在する時,真を返します.</p> </dd> <dt><a name="L003046" id="L003046">has_value?(key)</a></dt> <dt><a name="L003047" id="L003047">value?(value)</a></dt> <dd> <p>valueを値とする組がデータベース中に存在する時,真を返します.</p> </dd> <dt><a name="L003048" id="L003048">index(val)</a></dt> <dd> <p>ハッシュと同じ</p> </dd> <dt><a name="L003049" id="L003049">indexes(key_1, ... ) <a href="refm393.html">obsolete</a></a></dt> <dt><a name="L003050" id="L003050">indices(key_1, ... ) <a href="refm393.html">obsolete</a></a></dt> <dd> <p>各引数の値をキーとする要素を含む配列を返します.</p> </dd> <dt><a name="L003051" id="L003051">invert</a></dt> <dd> <p>値からキーへのハッシュを返します.</p> </dd> <dt><a name="L003052" id="L003052">keys</a></dt> <dd> <p>データベース中に存在するキー全てを含む配列を返します.</p> </dd> <dt><a name="L003053" id="L003053">length</a></dt> <dt><a name="L003054" id="L003054">size</a></dt> <dd> <p>データベース中の要素の数を返します.(注意:現在の実現では要素数を数 えるためにデータベースを全部検索します)</p> </dd> <dt><a name="L003055" id="L003055">reject {|key, value| ... }</a></dt> <dd> <p><a href="refm039.html">self.to_hash.reject</a> と同じです.ハッシュを返します.</p> </dd> <dt><a name="L003056" id="L003056">reorganize</a></dt> <dd> <p>GDBMでは,要素の削除を行ってもDBファイルのサイズは減少しません(削 除によって空いた領域は次の格納のために取っておかれます、).このメ ソッドを呼び出すことでDBMファイルを新規に作り直し無駄な領域をなく すことができます.</p> <p>大量の削除を行ったときに,ディスクスペースの節約のために使用します.</p> </dd> <dt><a name="L003057" id="L003057">replace(other)</a></dt> <dd> <p>DBMの内容を <var>other</var> の内容で置き換えます. <var>other</var> は each_pair メソッドを持つオブジェクトで なければなりません.</p> </dd> <dt><a name="L003058" id="L003058">shift</a></dt> <dd> <p>データベース中の要素を一つ取り出し,データベースから削除します.</p> </dd> <dt><a name="L003059" id="L003059">store(key, val)</a></dt> <dd> <p>self[key]=val と同じです.<var>key</var>に対して<var>val</var>を格納します.</p> </dd> <dt><a name="L003060" id="L003060">sync</a></dt> <dd> <p>要素の変更をファイルに反映します.FASTモード (GDBM#open() の第3引数にGDBM::FAST を指定)のときだけ意味があります.</p> <p>注) GNU gdbm version 1.8 以降よりFASTモードがデフォルトになりました.</p> </dd> <dt><a name="L003061" id="L003061">to_a</a></dt> <dd> <p>DBMの各要素を格納した配列を返します.返される配列の1つの要素は [key, val] です.(つまり配列の配列を返します).</p> </dd> <dt><a name="L003062" id="L003062">to_hash</a></dt> <dd> <p>DBMの各要素を格納したハッシュを返します.</p> </dd> <dt><a name="L003063" id="L003063">update(other)</a></dt> <dd> <p>DBMと<var>other</var>の内容をマージします.重複するキーに対応する値は <var>other</var>の内容で上書きされます.</p> <p><var>other</var>は each_pair メソッドを持つオブジェクトでなければなりま せん.</p> </dd> <dt><a name="L003064" id="L003064">values</a></dt> <dd> <p>データベース中に存在する値全てを含む配列を返します.</p> </dd> </dl> <h2><a name="L003065" id="L003065">定数</a></h2> <dl> <dt><a name="L003066" id="L003066">GDBM::VERSION</a></dt> <dd> <p>libgdbm のバージョン情報の文字列です.</p> </dd> </dl> <p>以下の定数は open の第3引数に指定します.</p> <dl> <dt><a name="L003067" id="L003067">GDBM::FAST</a></dt> <dd> <p>書き込みの結果が,ディスク上のファイルにすぐに反映しなくなります. このモードのときに結果を明示的にファイルに反映させるには GDBM#sync メソッドを呼びます.libgdbm version 1.8.0 以降ではこのモードがデフォルト です.</p> </dd> <dt><a name="L003068" id="L003068">GDBM::SYNC</a></dt> <dd> <p>書き込みの結果が,ディスク上のファイルにすぐに反映されます. libgdbm version 1.8.0 以前のデフォルトモードです.</p> <p>この定数は libgdbm version 1.8.0 以降より有効です</p> </dd> <dt><a name="L003069" id="L003069">GDBM::NOLOCK</a></dt> <dd> <p>通常,他のプロセスがDBをオープンしている最中にオープンを行うと Errno::EWOULDBLOCK(またはErrno::EAGAIN)例外が発生します.このフラグを 指定していれば,他のプロセスがオープンしている最中でも同時オープンする ことができます.</p> <p>この定数は libgdbm version 1.8.0 以降より有効です.</p> </dd> <dt><a name="L003070" id="L003070">GDBM::READER (Ruby 1.8.2 以降)</a></dt> <dd> <p>読み込みモードでオープンします.</p> </dd> <dt><a name="L003071" id="L003071">GDBM::WRITER (Ruby 1.8.2 以降)</a></dt> <dd> <p>書き込みモードでオープンします.</p> </dd> <dt><a name="L003072" id="L003072">GDBM::WRCREAT (Ruby 1.8.2 以降)</a></dt> <dd> <p>書き込みモードで、すでにファイルが存在しなかったら作ります.</p> </dd> <dt><a name="L003073" id="L003073">GDBM::NEWDB (Ruby 1.8.2 以降)</a></dt> <dd> <p>書き込みモードで、すでにファイルが存在したら削除してから作り直します.</p> </dd> </dl> <hr /> <div class="navigator"><span class="navigator">[<a href="index.html">MAIN</a>][<a href="refm543.html">INDEX</a>] [<a href="index.html">TOP</a>][<a href="refm175.html">UP</a>][<a href="refm175.html"><-PREV</a>][<a href="refm177.html">NEXT-></a>]</span></div> </body> </html>