DBM

访问NDBM文件的类。除了数据保存在文件中这个特点,以及索引和数据都必须是字符串这个限制之外,可以像对待Hash类那样来处理该类。

超类:

包含的模块:

类方法:

open(dbname[, mode[, flags]])

dbname所指数据库的模式设置为mode之后再打开该数据库。省略mode时,其默认值为0666。若将mode指定为nil的话,一旦没有数据库时就会直接返回nil而并不会生成新的数据库。

在Ruby 1.8.2 以后的版本中,可以指定flags参数。flags参数中可用的内容如下。

  • DBM::READER : 只是读入数据库
  • DBM::WRITER : 读写数据库,且不会生成新数据库
  • DBM::WRCREAT : 读写数据库,若没有数据库就新建一个
  • DBM::NEWDB : 总是新建数据库,此前的数据将被破坏

方法:

self[key]

返回索引等于key的元素的値。

self[key]=value

key设为索引,并将value存为该元素的值。若将value指定为nil时,将删除与key相对应的元素。

clear

清空DBM文件。

close

关闭DBM文件。此后的操作将引发异常。

delete(key)

删除索引等于key的元素。

delete_if { |key, value| ... }

若块的计算值为真,就删除相应的元素。

each {|key, value| ... }
each_pair {|key, value| ... }

对各要素进行迭代操作。

each_key {|key| ... }

对所有的key进行循环操作的迭代器。

each_value {|value| ... }

对所有的value进行循环操作的迭代器。

empty?()

若数据库为空,则返回真。

has_key?(key)
key?(key)
include?(key)

若数据库中包含key时,返回真。

has_value?(value)
value?(value)

若数据库中包含值为value的元素时,就返回真。

indexes(key_1, ... ) obsolete
indices(key_1, ... ) obsolete

返回一个以各参数值为索引的元素构成的数组。

keys

返回一个以数据库中全部索引所构成的数组。

length
size

返回数据库中的元素个数。(注意:在目前情况下,要想取得元素的个数就必须对整个数据库进行检索)

shift

取出数据库中的一个元素,并将其从数据库中删除。

values

返回一个以数据库中全部元素值所构成的数组。

常数

DBM::READER (Ruby 1.8.2 以后)

以读入模式打开.

DBM::WRITER (Ruby 1.8.2 以后)

以写入模式打开.

DBM::WRCREAT (Ruby 1.8.2 以后)

在写入模式下,若没有文件就新建一个。

DBM::NEWDB (Ruby 1.8.2 以后)

在写入模式下,若文件已存在就将其删除,并重新建一个。