標籤:qt mdict 詞典 轉化
我設計的詞典不僅可以實現線上查單詞,而且一個重大特色就是具有豐富的本地詞典庫:我預設加入了八個類型的詞典,如下所示:
由於是本人是通訊專業,因此加入了華為通訊詞典、電子工程詞典,又由於我喜愛編程,也加入了c語言基本函數詞典。下面介紹如何設計本地詞典:
詞典類型的選擇 當然是txt格式的最好了,因為我們可以用程式直接進行讀取。可是網上詞典一般都是用mdx格式、ld2格式的,我無法用Qt來直接讀取。最終,經過不斷摸索,網上尋找,發現我們可以將mdx格式的詞典通過軟體轉化為txt格式的!
mdx詞典的下載 如何擷取mdx格式的詞典呢?直接百度 mdx 詞典就可以發現如下搜尋結果:
從中選擇下載你想要的詞典,這裡我以http://bbs.meizu.cn/thread-3299845-1-1.html中的第一個mdx詞典“三合一漢語大辭典”作為例子。
mdx詞典的查看 由於是mdx格式的,你用記事本開啟就會顯示亂碼。那麼怎麼查看你下載的詞典的內容呢?這時我們可以利用一個可以解析mdx格式的軟體MDict(點擊下載)來開啟該mdx詞典。
舉例說明: 假設我下載了一個“三合一漢語大辭典.mdx”,我們首先開啟MDict軟體來查看該詞典的內容。首先選擇“詞庫”--“詞庫管理”--“加入詞典”,從而加入我們下載的詞典檔案,然後點擊“詞庫”,從下拉式清單中選擇我們剛才加入的“三合一漢語大辭典”。然後單擊左側欄,就會在右側欄中顯示對應的內容。具體操作圖解如下:
mdx詞典的轉換 將mdx格式的詞典轉化為txt格式需要利用工具MDx詞典轉化工具(點擊下載),只需要按照即可轉化為txt檔案:
用記事本開啟該txt檔案我們就可以發現類似的語言格式:
我們以圖中第二行為例,aadb為我們要查的單詞(注意:我們這裡的詞典是成語詞典,即尋找aadb四個拼音首字母所組成的成語),而後面<font </font><br>中的即為我們要找的成語,學過網頁設計的人應該都知道<font color="#0000FF"><br>嗷嗷待哺</font><br>的意思,這其實是html語言,即將“嗷嗷待哺”變為藍色字型,正如我們在MDict所看到的一樣。而恰好Qt可以識別html語言,因此即使像我這種沒有學過html語言的人也不用費心思去瞭解。
txt詞典的處理 前面我們基本上完成了詞典的製作,但是我為了簡便起見,我將詞典中要查的詞和內容分開儲存。例如,我將上面的txt檔案改名為Chinese.txt(方便編程使用),將其拆分如下名為ChineseA和ChineseB檔案:
這樣做的好處是,每當我在搜尋視窗輸入我想要查詢的內容時(比如輸入aadb),我就只需要開啟ChineseA檔案,在這裡尋找是否存在該詞,而不需要開啟整個詞典(詞+內容),這樣尋找速度會快一點,因為很明顯ChineseA的檔案的大小要明顯小於Chinese檔案大小,還有一點好處,會在後面的系列文章中提到。如下所示:
關於如何將上面的檔案拆分成兩個檔案,我想應該很簡單,我就不在這寫出具體的實現過程,只說說思路:首先讀取整個檔案,每次讀取一行,在每一行中,遇到第一個空格就提取出來放入ChineseA.txt中,該行剩餘部分放入ChineseB.txt。值得注意的是,兩個子檔案中,對應的內容應該在相同行!
好吧,也許說了這麼多,你也嫌太複雜,懶得自己操作,覺得我的本地詞典庫足夠了,那好吧,你可以自己下載我已經處理好了的txt格式的詞典檔案。連結為:http://download.csdn.net/detail/tengweitw/8588209
基於Qt的詞典開發系列
- 詞典架構設計及成品展示
- 本地詞典的設計
作品:http://download.csdn.net/detail/tengweitw/8548767
原文:http://blog.csdn.net/tengweitw/article/details/45014771
nineheadedbird
【Qt編程】基於Qt的詞典開發系列<二>--本地詞典的設計