關於漢字生成拼音的的函式

2022-04-15 01:26:13 字數 1851 閱讀 7908

關於漢字生成拼音的的函式 delphi / windows sdk/api

怎麼把乙個呼叫乙個函式就能把乙個漢字生成拼音  

比如輸入"青黴素"生成"qms"  

知道的請告訴我一下,謝了!

來自超級猛料的函式:  

function   gethzpy(const   ahzstr:   string):   string;  

const  

chinacode:   array[0..25,   0..1]   of   integer   =   ((1601,   1636),   (1637,   1832),   (1833,   2077),  

(2078,   2273),   (2274,   2301),   (2302,   2432),   (2433,   2593),   (2594,   2786),   (9999,   0000),  

(2787,   3105),   (3106,   3211),   (3212,   3471),   (3472,   3634),   (3635,   3722),   (3723,   3729),  

(3730,   3857),   (3858,   4026),   (4027,   4085),   (4086,   4389),   (4390,   4557),   (9999,   0000),  

(9999,   0000),   (4558,   4683),   (4684,   4924),   (4925,   5248),   (5249,   5589));  

var  

i,   j,   hzord:   integer;  

hz:   string[2];  

begin  

i   :=   1;  

while   i   <=   length(ahzstr)   do  

begin  

if   (ahzstr[i]   >=   #160)   and   (ahzstr[i   +   1]   >=   #160)   then  

begin  

hzord   :=   (ord(ahzstr[i])   -   160)   *   100   +   ord(ahzstr[i   +   1])   -   160;  

for   j   :=   0   to   25   do  

begin  

if   (hzord   >=   chinacode[j][0])   and   (hzord   <=   chinacode[j][1])   then  

begin  

result   :=   result   +   char(byte('a')   +   j);  

break;  

end;  

end;  

inc(i);  

end   else   result   :=   result   +   ahzstr[i];  

inc(i);  

end;  

result   :=   lowercase(result);//轉為小寫  

end;  

呼叫方法:  

edit1.text   :=   gethzpy('青黴素');  

showmessage(edit1.text);  

mark

想請問下這個函式能處理多音字的情況嗎?是不是還是基於gb2312而已?

多音字這個函式就無能為力了!看來得從新寫,將多音字都挑出來單獨處理了!  

如果不是基於gb2312的,內碼轉換吧!

關於漢字拼音排序

想要對漢字進行排序,我們需要做一下準備。1.將漢字轉化成相應的拼音。2.根據拼音將漢字排序。一 漢字轉化成相應的拼音 例如 編碼改變世界 要轉化成 bianmagaibianshijie 將漢語轉化成拼音,有很多方法,有第三方庫實現,也有系統自帶的方法實現。第三方轉化的比較常用的是由george編寫...

漢字轉換拼音函式

呼叫convertpinyin 函式,引數為你要轉換的漢字 返回值就是轉換後的拼音 可以只返回首字母或者首字母大寫的全拼拼音 var phonetictranscriptionobj 漢字轉拼音 function convertpinyin chinesecharacter else if name...

漢字轉換拼音函式

呼叫convertpinyin 函式,引數為你要轉換的漢字 返回值就是轉換後的拼音 可以只返回首字母或者首字母大寫的全拼拼音 var phonetictranscriptionobj 漢字轉拼音 function convertpinyin chinesecharacter else if name...