在delphi 7中實現獲取漢字拼音首字母

     公司的餐飲系統出品的助記碼,還沒實現自動從出品名稱獲取漢字拼音首字母。

   所以在網上找了三種解決方法,

    一種是kaguo 的使用常用漢字拼音查找方法,這種代碼十分簡單,實現方便,但是這種代碼僅僅是一級字庫,只支持三千零幾個字的。

         據kaguo說“瞭解一下漢字轉化拼音的程序,你就知道多音字分析多難處理了。   比如"很多人蔘加",參應該是什麼?很容易分析成“人蔘”。   這方面切實接觸過,你就知道這種簡單易行的分析是最合適的。” 

        參考地址是http://topic.csdn.net/t/20040812/14/3267676.html

   另一種是拼音庫,不過有些下載沒有聲明到底支持多少個漢字,我統計過的一個拼音庫最多支持7242個漢字,當然這個是提供源碼的。這裏最好的是據說“支持GBK大字符集,共可查20876個(1.0版爲20588個)不同漢字的拼音或拼音首字母”的PARKE(R)柏克拼音DLL庫(沒有提供源碼)。

         參考地址是http://download.csdn.net/source/136187

柏克拼音DLL只有兩個函數,函數原型如下:

    //獲得拼音
    //參數依次爲: 拼音緩存區,要轉換的字符,分隔符
    BOOL WINAPI GetPinYin(PCHAR pBuf,PCHAR pStr,PCHAR pSeparator)

    //獲得拼音首字母
    //參數依次爲: 拼音緩存區,要轉換的字符
    BOOL WINAPI GetPinYinLeader(PCHAR pBuf,PCHAR pStr)

      在delphi 7下調用PARKE(R)柏克拼音DLL庫,調用代碼如下

       

     經過測試這四個字“吳2黨饐”得到的字符串是"w2dy"。結果應該是不錯的。

     ps:以前在delphi沒調用過C寫的dll庫,今天就學習一回。

   在C++builder6中動態調用的方法,(靜態的調用試驗沒成功,主要是用implib沒法生成正確的Pinyin.lib,內容缺文件名,一啓動就報找不到文件,不知道誰可以幫忙解決這個問題)

 

最後一種是從微軟拼音輸入法取出拼音庫.必須安裝“微軟拼音輸入法”,反查只能查詢一個字的。查不了一個詞組的。(當然經過適當的代碼可以查出詞組)

    參考地址:http://topic.csdn.net/t/20041118/09/3563659.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章