■ 江苏 佘明祥
如今,各种电子字典争奇斗艳,各显神通,尽管这样的软件很多,但每个人的要求却也各种各样,因此常常会有衣多难寻合身之物的感觉,能否集众家之长,根据自己的需要DIY一个电子字典呢?只要稍懂一点编程知识,按以下步骤操作即可。
1.借用别人的字典库
字典库是电子字典的核心,还是借一个来用吧!我的经验是多下载并安装几个电子字典,然后在其安装文件夹中找字典库文件,找一个自己认为最全(收录词条最多)的稍作修改即可。
大多数软件的字典库文件是文本文件或Access数据库文件,也有特定格式的文件。Access文件基本不要处理;文本文件要转化为数据库文件,建议先用Excel打开它,在向导指引下将其转换为Excel文件,然后再导入数据库文件,进一步修改导入数据表的字段名称、类型、长度;特定文件格式的转化需一点软件功夫,这里不便多说。我所用字典库是“创世纪英语”(Century word)中的Xdict.mdb文件,其中的数据表Word存放了字典信息,为了直观,将英文单词的字段名改为“英语”,汉语解释的字段名改为“汉语”,音标的字段名改为“音标”。Access数据库文件不需再转化,并且它既收有单词又收有短语,总共有35426条,已能充分满足我们需要。
2.选择语言与设计界面
对于这样一个字典软件,无论是Visual Basic、Visual C++、Power Builder、Delphi,还是Borland C++ Builder(简称BCB)均可,关键选择一个自己熟悉的开发工具。我比较熟悉BCB 6.0,只要15分钟便搭起软件框架:这是一个英汉互查软件,既能查单词又能查短语,还能查英语同意词。
让我们设计软件界面:在窗体上放两个文本框,文本框1用于待查英文单词的输入,文本框2用于待查汉字的输入;放一个数据集控件连接到字典库(Xdict.mdb中的表Word);放一个DBGrid框用于显示查询结果,如果使用Delphi或BCB还要加一个DataSource控件将数据集与DBGrid绑定在一起。
3.打造英汉功能
考虑到从左向右的模糊查找功能非常实用,在文本框1的Change事件使用查询语句:
"Select * from word where 英语 like '" + st1 + "%'"
st1是文本框1中输入的待查字符。就这么简单,单词、词组均能查,还有模糊逐级查找功能,一般的电子字典可不具备吧!
4.打造汉英功能
这个字典库不是汉英字典库,不过没关系,采用任意模糊查询方式,将与待查汉字有关的记录,在DBGrid框统统列出来,你要查的东东肯定就在其中,至此又有了一个新收获,汉英字典又成了英语同意词字典,岂不是一箭“多”雕。你所要做的是在文本框2的Chang事件中使用查询:
"Select * from word where 汉语 like '%" + st2 + "%'"
其中st2是文本框2中输入的待查字符。
5.让它还能显示音标
现在字典做好了,但国际音标出不来,原因是没有相应音标字体,老规矩,还是借用一下吧。从安装好金山词霸的电脑中,在C:\Windows\Fonts下找到名为“ksphonet.ttf”的文件,将其解开复制到本地的Winnt\fonts或Windows\fonts文件夹中。当然,你也可将金山词霸安装一遍,让字体文件自动复制。将DBGrid框中的音标所列字体设置为“kingsoft Phonetic Plain” ,国际音标能显示了。
6.Borland C++ Builder实例介绍
新建一个工程,向窗体Form1中拖2个Label控件,2个Edit控件,1个ADOQuery控件,1个DataSource控件,1个DBGrid控件,Label1的Caption属性写上“英语”,在其右侧放Edit1用于输入待查的英文单词或短语,Label2的Caption属性写上“汉语”,在它的右侧放Edit2用于输入待查的汉字;DataSource的DataSet属性置为“ADOQuery1”;DBGrid1的DataSource属性置为“DataSource1”;ADOQuery1的ConnecttionStringn属性写成“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\dict_diy\dict.mdb;Persist Security Info=False”(设数据库文件的路径是D:\dict_diy\dict.mdf),如果想让数据库的位置是动态,则在窗体加一OpenDialog控件用于确定文件路径,然后在代码中写上ADOQuery1->ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+OpenDialog->FileName+";Persist Security Info=False"即可。
字典做好了,你还根据需要使它功能更多,外观更华丽,总之DIY的“衣服”最合身!
具体代码请从http://www.cfan.com.cn/11program/200422/jtnghb.html下载。
……