20 12
发新话题
打印

词库用INI还是ACESS

词库用INI还是ACESS

最近想开发一个电子词典软件,所有词汇量大概在50万左右,请问:
用INI文件存储词汇好,还是用ACESS数据库存储好?
另外,需要把以A开头的单词放到A.ini,或A.mbd.
其它BCDEF。。。开头单词依次类推?
以提高加载表或INI时的效率。谢谢。

TOP

用ini太勉强吧,建议用sqlite
Free as in free speech, not as in free beer.
www.nill.cn

TOP

这类软件建议使用自己设计的数据文件, 二进制形式存储. 用Ini效率上会很有问题, 用access不便移值

TOP

同mopyman,建议用sqlite

TOP

mdb和ini都不好,同意上面的说法
晚上没激情~~~~

TOP

sqlite,不错
万古长空 一朝白雪

TOP

你会发现INI当文件超过一定大小的时候,读取会非常的慢,建议用Access,或者自己设计一个词库文件格式.
永远雪山

TOP

自己设计?怎么设计啊?

TOP

firebrid呢,SQLLite这两个哪个好?
另外,Delphi中如何调用SQLLite,设立数据库连接.

TOP

自己设计的文件格式是实际上是很方便的.设计一个结构:
Data=record
  Key: WideString   
Value: WideString;
end;

而存入文件的数据结构可如下:
FileData=record
  KeyLen: Integer;
  ValueLen: Integer;
end;
结构后面紧接着跟两个数据,这样是可以根据具体数据的大小不浪费文件空间.

读取的时候,顺序读取,当然可以需要一个文件头,标识文件概要信息,譬如记录数量,文件格式标识.
读取数据的时候,在文件头后面是一个FileData结构,读取KeyLen和ValueLen后,紧接着就可以根据大小读取Key和Value 到Data结构中.

而整个表格在内存中可以做成链表.易于维护.

关于查找:
1.可以只做成一个Data链表,用QuickSort排序,然后用二分法查找.

2.可以做成一个Hash表,查找起来比较快,但是存储的时候最好也存储一个Hash Key,否则每次计算Hash Key是比较降低性能的

3. 可以做成 27个Data 链表,分别是A-Z和其它. 然后每一个链表可以使用以上两种方法排序查找.这种方法的好处是在以上两种方法再次降低查找复杂程度,但是加载的时候就需要排断然后分别放置数据,需要你自己试试哪一个综合性能好一点.

我就概要说点,这样或许给你有点帮助!
永远雪山

TOP

 20 12
发新话题