如何建立的dbm文件

如何建立的dbm文件

如何建立的dbm文件
dbm文件该如何建立,是不是将一个txt改称dbm就行了???
用dbmopen(%answers,"C:\\Documents and Settings\\tujchl\\桌面\\answers.dbm",0666)||die"can`t open it:$!";是否可以调用???
[CCB]10[/CCB][CCB]10[/CCB][CCB]10[/CCB]
不是~你得先得加载某个DBM.
不是~你得先得加载某个DBM模块,perl 有很多种可用的 DBM 数据库,你在 search.cpan.org 上搜索 DBM 便知
不过你可以使用一个统一的接口模块 AnyDBM_File,然后你就可以用 dbmopen 函数来打开数据库了
给个例子:[quote]#!/usr/bin/perl
# 把 data.txt 里的内容写到 DBM 数据库里
# data.txt 里每行内容包含两个字段,以 "|" 分隔
# 如:
# key1 | value1
# key2 | value2
# ......

use AnyDBM_File;

open(FILE,"<data.txt") or die $!;
dbmopen(%table,"data",0666) or die $!;

while(<FILE>){
chomp;
($key,$value)=split(/\|/,$_);
$table{$key}=$value;
}
close(FILE);
dbmclose(%table);
[/quote]
现在我们打开这个数据库,读东西出来
[quote]#!/usr/bin/perl

use AnyDBM_File;

dbmopen(%table,"data",0666) or die $!;

for $key (keys %table){
print "$key ---> $table{$key}\n";
}

dbmclose(%table);[/quote]




   

[CCB]10[/CCB];楼上的话我不是很理解,我还是只小菜鸟。
但我觉得你是直接用已有的dbm文件,我想见一个新的怎么做???
还有你说的data.txt是放在哪得???? [CCB]10[/CCB][CCB]10[/CCB]
data.txt 是随便一个文本的文件阿,放在和程序相同的目录下,里面就是一些数据类似:
[quote]
aaaa | 1111111111111111111
bbbb | 222222222222222222
cccc | 333333333333333333
...等等,每行以 "|" 符号分隔的...
[/quote]
第一个程序就是把这个以文本保存的数据写到 dbm 数据库里,相当是把数据导入数据库里了(数据库里总得放点数据吧?要不你不从文件导入数据的话,也可以手工输入阿)
然后第二个程序就是打开这个新建的数据库,并从里面读数据出来,这第二个程序就不关 data.txt 的事了吧?
先得加载某个DBM模块 ?? 请问楼上的这是必须的吗 ?不是直接用dbmopen(...)就可以直接用于新建,操作dbm文件了吗? 我是在LINUX下用过, 没用到任何use anyD... ,也是可以的, [CCB]10[/CCB]
无须显示的加载,dbmopen 默认的话相当于 tie %hash,"NDBM_File",[options] 了,我的意思是,如果你要指定某种类型的DBM,比如DB_File,SDBM,GDBM,BerkeleyDB等等的话,可以使用 AnyDBM_File,然后在 tie 的时候就可以指定所使用的某种DBM数据库了
那我要读入的data.txt文件.
那我要读入的data.txt文件在别的地方放着的,
该如何写地址????
写上这个文件的完整路径即.
写上这个文件的完整路径即可