英漢雙向字典DIY江蘇 佘明祥 如今,各種電子字典爭奇斗艷,各顯神通,盡管軟件很多,卻有衣多難尋合身之物的感覺,能否集眾家之長,根據(jù)自己的需要DIY一個電子字典呢?只要稍懂一點編程知識,按以下步驟操作即可。 一、字典庫字典庫是電子字典的核心,還是借一個來用吧!我的經(jīng)驗是可以多下載幾個電子字典,分別將它們安裝到自己的機器中,然后其安裝文件夾中找字典庫文件,找一個自己認為最全(收錄詞條最多)的稍作修改即可。大多數(shù)軟件的字典庫文件是文本文件或Access數(shù)據(jù)庫文件,也有的是特定格式的文件,Access文件基本不要處理;文本文件要轉(zhuǎn)化為數(shù)據(jù)庫文件,建議先用Excel打開它,在向?qū)У闹敢聦⑵滢D(zhuǎn)化為Excel文件,然后再導入數(shù)據(jù)庫文件,進一步修改導入數(shù)據(jù)表的字段名稱、類型、長度;特定文件格式的轉(zhuǎn)化需一點軟件功夫,這里不便多說。我所用字典庫是“創(chuàng)世紀英語”(Century word)中的Xdict.mdb文件,其中的數(shù)據(jù)表Word存放了字典信息,為了直觀,將英文單詞的字段名改為“英語”,漢語解釋的字段名改為“漢語”,音標的字段名改為“音標”。Access數(shù)據(jù)庫文件不需再轉(zhuǎn)化,并且它既收有單詞又收有短語,總共有35426條,已能充分滿足我們需要。 二、選擇語言與設計界面對于這樣一個字典軟件,無論是Visual Basic、Visual C++、Power Builder、Delphi還是Borland C++ Builder均可,關鍵選擇一個自己熟悉的開發(fā)工具。我比較熟悉BCB 6.0,只要15分鐘便搭起軟件的框架:這是一個英漢互查軟件,既能查單詞又能查短語,還能查英語同意詞,界面如下:
參考上圖,讓我們設計軟件界面:在窗體上放兩個文本框,文本框1用于待查英文單詞的輸入,文本框2用于待查漢字的輸入;放一個數(shù)據(jù)集控件連接到字典庫(Xdict.mdb中的表Word);放一個DBGrid框用于顯示查詢結果,如果使用Delphi或BCB還要加一個DataSource控件將數(shù)據(jù)集與DBGrid綁定在一起。 三、英漢功能考慮到從左向右的模查找功能非常實用,在文本框1的Change事件使用查詢語句: "Select * from word where 英語 like ‘" + st1 + "%‘" st1是文本框1中輸入的待查字符。就這么簡單,單詞、詞組均能查,還有模糊逐級查找功能,一般的電子字典可不具備吧! 四、漢英功能這個字典庫不是漢英字典庫,不過沒關系,采用任意模糊查詢方式,將與待查漢字有關的記錄,在DBGrid框統(tǒng)統(tǒng)列出來,你要查的東東肯定就在其中,至此我們又發(fā)現(xiàn)一新的收獲,漢英字典又成了英語同意詞字典,豈不是一箭“多”雕。你所要做的是在文本框2的Chang事件中使用查詢: "Select * from word where 漢語 like ‘%" + st2 + "%‘" 其中st2是文本框2中輸入的待查字符。 五、顯示音標現(xiàn)在字典做好了,但國際音標出不來,原因是沒有相應的音標字體,老規(guī)矩,還是借用一下吧。從網(wǎng)上下載一個金山詞霸,在其壓縮包中找到名為“ksphonet.ttf”的文件,將其解開復制到Winnt\fonts或Windows\fonts文件夾中,當然,你也可將金山詞霸在你的機器上安裝一遍,讓字體文件自動復制。將DBGrid框中的音標所列字體設置為“kingsoft Phonetic Plain” ,國際音標能顯示了。 六、Borland C++ Builder實例介紹新建一個工程,向窗體Form1中拖2個Label控件,2個Edit控件,1個ADOQuery控件,1個DataSource控件,1個DBGrid控件,Label1的Caption屬性寫上“英語”,在它的右側(cè)放Edit1用于輸入待查的英文單詞或短語,Label2的Caption屬性寫上“漢語”,在它的右側(cè)放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”(設數(shù)據(jù)庫文件的路徑是d:\dict_diy\dict.mdf),如果想讓數(shù)據(jù)庫的位置是動態(tài),則在窗體加一OpenDialog控件用于確定文件路徑,然后在代碼中寫上ADOQuery1->ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+OpenDialog->FileName+";Persist Security Info=False"即可。 Edit1用于英譯漢查詢,其過程為: void __fastcall TForm1::Edit1Change(TObject *Sender)
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select 英語, 音標,漢語 from word where 英語 like ‘"+
Edit1->Text+"%‘");
ADOQuery1->Open();
}
Edit2用于漢譯英查詢,其過程為: void __fastcall TForm1::Edit2Change(TObject *Sender)
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select 英語, 音標, 漢語 from word where 漢語 like ‘%"+
Edit2->Text+"%‘");
ADOQuery1->Open();
}
要寫的全部代碼就這么多。為了能讓DBGrid1顯示音標,要使DBGrid1產(chǎn)生靜態(tài)音標列,并將該列的字體設為“kingsoft Phonetic Plain”。 字典做好了,你還根據(jù)需要使它功能更多,外觀更華麗,總之DIY的“衣服”最合身! |
|
|