關於漢字生成拼音的的函式 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...