电竞比分网-中国电竞赛事及体育赛事平台

分享

英漢雙向字典DIY

 frie 2005-08-04

英漢雙向字典DIY

江蘇 佘明祥

如今,各種電子字典爭奇斗艷,各顯神通,盡管軟件很多,卻有衣多難尋合身之物的感覺,能否集眾家之長,根據(jù)自己的需要DIY一個電子字典呢?只要稍懂一點(diǎn)編程知識,按以下步驟操作即可。

一、字典庫

字典庫是電子字典的核心,還是借一個來用吧!我的經(jīng)驗(yàn)是可以多下載幾個電子字典,分別將它們安裝到自己的機(jī)器中,然后其安裝文件夾中找字典庫文件,找一個自己認(rèn)為最全(收錄詞條最多)的稍作修改即可。大多數(shù)軟件的字典庫文件是文本文件或Access數(shù)據(jù)庫文件,也有的是特定格式的文件,Access文件基本不要處理;文本文件要轉(zhuǎn)化為數(shù)據(jù)庫文件,建議先用Excel打開它,在向?qū)У闹敢聦⑵滢D(zhuǎn)化為Excel文件,然后再導(dǎo)入數(shù)據(jù)庫文件,進(jìn)一步修改導(dǎo)入數(shù)據(jù)表的字段名稱、類型、長度;特定文件格式的轉(zhuǎn)化需一點(diǎn)軟件功夫,這里不便多說。我所用字典庫是“創(chuàng)世紀(jì)英語”(Century word)中的Xdict.mdb文件,其中的數(shù)據(jù)表Word存放了字典信息,為了直觀,將英文單詞的字段名改為“英語”,漢語解釋的字段名改為“漢語”,音標(biāo)的字段名改為“音標(biāo)”。Access數(shù)據(jù)庫文件不需再轉(zhuǎn)化,并且它既收有單詞又收有短語,總共有35426條,已能充分滿足我們需要。

二、選擇語言與設(shè)計界面

對于這樣一個字典軟件,無論是Visual Basic、Visual C++、Power Builder、Delphi還是Borland C++ Builder均可,關(guān)鍵選擇一個自己熟悉的開發(fā)工具。我比較熟悉BCB 6.0,只要15分鐘便搭起軟件的框架:這是一個英漢互查軟件,既能查單詞又能查短語,還能查英語同意詞,界面如下:

參考上圖,讓我們設(shè)計軟件界面:在窗體上放兩個文本框,文本框1用于待查英文單詞的輸入,文本框2用于待查漢字的輸入;放一個數(shù)據(jù)集控件連接到字典庫(Xdict.mdb中的表Word);放一個DBGrid框用于顯示查詢結(jié)果,如果使用Delphi或BCB還要加一個DataSource控件將數(shù)據(jù)集與DBGrid綁定在一起。

三、英漢功能

考慮到從左向右的模查找功能非常實(shí)用,在文本框1的Change事件使用查詢語句:

"Select * from word where 英語 like ‘" + st1 + "%‘"

st1是文本框1中輸入的待查字符。就這么簡單,單詞、詞組均能查,還有模糊逐級查找功能,一般的電子字典可不具備吧!

四、漢英功能

這個字典庫不是漢英字典庫,不過沒關(guān)系,采用任意模糊查詢方式,將與待查漢字有關(guān)的記錄,在DBGrid框統(tǒng)統(tǒng)列出來,你要查的東東肯定就在其中,至此我們又發(fā)現(xiàn)一新的收獲,漢英字典又成了英語同意詞字典,豈不是一箭“多”雕。你所要做的是在文本框2的Chang事件中使用查詢:

"Select * from word where 漢語 like ‘%" + st2 + "%‘"

其中st2是文本框2中輸入的待查字符。

五、顯示音標(biāo)

現(xiàn)在字典做好了,但國際音標(biāo)出不來,原因是沒有相應(yīng)的音標(biāo)字體,老規(guī)矩,還是借用一下吧。從網(wǎng)上下載一個金山詞霸,在其壓縮包中找到名為“ksphonet.ttf”的文件,將其解開復(fù)制到Winnt\fonts或Windows\fonts文件夾中,當(dāng)然,你也可將金山詞霸在你的機(jī)器上安裝一遍,讓字體文件自動復(fù)制。將DBGrid框中的音標(biāo)所列字體設(shè)置為“kingsoft Phonetic Plain” ,國際音標(biāo)能顯示了。

六、Borland C++ Builder實(shí)例介紹

新建一個工程,向窗體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è)數(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 英語, 音標(biāo),漢語 from word where 英語 like ‘"+
                      Edit1->Text+"%‘");
  ADOQuery1->Open();
}

Edit2用于漢譯英查詢,其過程為:

void __fastcall TForm1::Edit2Change(TObject *Sender)
{
  ADOQuery1->Close();
  ADOQuery1->SQL->Clear();
  ADOQuery1->SQL->Add("select 英語, 音標(biāo), 漢語 from word where 漢語 like ‘%"+
                      Edit2->Text+"%‘");
  ADOQuery1->Open();
}

要寫的全部代碼就這么多。為了能讓DBGrid1顯示音標(biāo),要使DBGrid1產(chǎn)生靜態(tài)音標(biāo)列,并將該列的字體設(shè)為“kingsoft Phonetic Plain”。

字典做好了,你還根據(jù)需要使它功能更多,外觀更華麗,總之DIY的“衣服”最合身!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多