·汉化新世纪 ·汉化新世纪论坛 ·百家争鸣 ·论坛集萃 ·汉化问答 ·软件介绍
文章首页 >> 汉化时事 >> 论坛集萃 >> PASSOLO 字典整理 -- SQL数据库篇    Creative Commons License,创作共用协议(中文版)  署名 非商业性使用 禁止演绎

PASSOLO 字典整理 -- SQL数据库篇

作者: 海子 来源:汉化新世纪论坛 时间:2006-02-01 点击:9520

非常大的字典(大于1M)我们只好用SQL数据库来整理了,这里以微软的字典为例(非常感谢炎之川)
首先对原字典进行简单的修剪,因为是 VL 字典,我们先用电子表格处理一下。用电子表格打开字典文件,删除 A、D、E 三列,删除开头无用部分
附带图片1
接下来同时选中A、B 两列,进行排序,查看开头和结尾,再删除无用部分
(如果有),保存。
附带图片2

打开企业管理器,新建数据库
附带图片3
为数据库起名,我用的是“字典”,当然你也可以用其他名称
附带图片4
设定数据文件位置,设定事务日志文件位置,当然,不必设定,用默认位置即可。
附带图片5

附带图片6
 
接下来在刚刚建好的数据库中建立两表,为什么是两个,跟着做很快就会明白。
附带图片7
先建一个表,表中有两列,列名你可以不同,数据类型为 varchar (就是字符串类型),长度设定为 500 ,这个值太小了不保险,太小在导入字典数据时如果字符串长度大于这个值,则会被截断,出现不准确的数据
附带图片8
 
设定好后点击左上角的保存图标,弹出设定表名对话框,设定好表名,我设定为“字典”
附带图片9
同样的设定,我又设定了一个名为“aaaa”的表
附带图片10
 
设定好的两个表(表名你也可以设定为别的)
附带图片11
关掉企业管理器,启动 导入和导出数据 程序,越过欢迎界面,来到数据源选择界面,数据源选择文本文件,因为我们要把字典导入数据库嘛,字典文件就是数据源。
附带图片12
 
设定数据源为文本文件,会让你提供文件位置,那就是刚刚修剪过的字典文件了。
附带图片13
接下来的两步不用特殊设定
附带图片14

附带图片15
 
接下来就是要把数据复制到哪里,我们选择新建的数据库
附带图片16
下一步,是把数据复制到新建数据库的哪个表中,就选 aaaa 这个表,以后导入的数据都必须导入这个表
附带图片17
 
接下来不必设置,直至最后点击完成开始导入数据。
附带图片18

附带图片19

咦?导入出错?根据提示看看出错信息。
附带图片20
下图所示,指出了具体的错误内容,根据提示修正错误即可,在这里不必关闭向导,先返回到完成界面。然后修改字典文件出错的地方。在设定表的时候,我们设定为不允许有空值,其作用在这里就体现出来了,这样设定能够有效的保证数据的有效性。
附带图片21
用电子表格打开出错的字典,找到 17737 行,果然,B 列中什么内容也没有(实际上是我故意设置的)。好了,删除这一行,保存字典,退出电子表格程序。
附带图片22
然后点击向导的完成按钮,导入数据,成功。
附带图片23
 
接下来我们过滤数据,如下图所示,点击绿色按钮查询。
这句查询的意思是:把表 aaaa 中的两列中的内容不重复性复制表 字典 中的两列中,其所用时间极短,大约44秒。
附带图片24
那在这44秒钟数据库都作了些什么?ok,看下图:
附带图片25

附带图片26

附带图片27
比较了 228197 条记录并复制了 170748 条记录,爆强!!!
还有更强的,如果你进行了一次这样的查询,进行第二次这样查询,用时只有3秒。
进一步优化字典,用下面的查询
第一行:意思是删除表中两列都是单字符内容(也可以把 and len(cn)=1去掉)
第二行:删除没有翻译的行
附带图片28
好了,我们来制作成 PASSOLO 字典
先用:select * from 字典
查询全部内容,并全部选择结果
附带图片29
点击另存为,进行保存设置
选择 制表符分隔 ,保存为所有文件
附带图片30
 
我晕,有15M之多,太大了
附带图片31
我们进行分段查询
这一句:
select * from 字典 where en like [^a-z]%

意思是第一个字母不是a 到 z 的内容,不区分大小写。

这一句:

select * from 字典 where en like [a-c]% order by en

意思是第一个字母是 a 到 c 的条目,并且结果是升序的

附带图片32

只有 2.4M这样就差不多了,OK,完成。

汉化新世纪 责任编辑: 乾 .:|:. 标签(Tag): 字典 PASSOLO

·上一篇: PASSOLO 字典整理 -- 电子表格篇 ·下一篇: 一个 Repacker 站长的“肺腑之言”

· 版权申明: 本文引自《汉化新世纪论坛》,如有版权疑问请及时联系本站,以便本站处理。

· 转载申明: 本文引自《汉化新世纪论坛》[ 作者: 海子],如需转载请直接联系原始作者,并请注明原始出处。

相关文章                                                                                发表评论 打印此文 关闭窗口

| 设为首页 | 加入收藏 | 联系我们 | 友情链接
Creative Commons License,创作共用协议(中文版)  署名 非商业性使用 禁止演绎
本站内容,除转载或版权特别申明的内容外,皆遵守 创造共用协议中文版之“署名-非商业性使用-禁止演绎 2.5 中国大陆”条款
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.5 China License.
本网站内容源自汉化新世纪论坛的摘录和汉化新世纪成员的原创文章。
凡汉化新世纪论坛的文字皆默认为汉化新世纪与原作者共同拥有并授权发布。
如对本站发布文章有所异议请来信告知,我们将及时删除。
凡商业摘录本站文字请先与我们联系,本站将保留非授权商业发布的追究权利。
凡非商业摘录本站文字请明显注明出处和原作者,并不得改动,凡改动必先征求原作者同意。
苏ICP备05002283号