谁知道怎么可以知道一个汉字的拼音
谁有现成的算法和原码可以给我看看吗?
用DELPHI写的谢谢

解决方案 »

  1.   

    超级猛料中找到的内容:反查汉字拼音    
        
    variHandleCount: integer;pList: array[1..nHKL_LIST] of HKL;szImeName: array[0..254] of char;i: integer;sFound: string;beginlstComposition.Items.Clear;iHandleCount := GetKeyboardLayoutList(nHKL_LIST, pList);for i := 1 to iHandleCount dobeginif ImmEscape(pList[i], 0, IME_ESC_IME_NAME, @szImeName) > 0 thenbeginsFound := QueryCompStr(pList[i], edtExam.Text);if sFound <> '' thenlstComposition.Items.Add(StrPas(szImeName) + ': ' + sFound);end;end;**************金山词霸(2.0-2000版本)内有gb2py.idx和gbk2py.idx,内有国标GB、GBK的每个汉字的拼音和声调。可用拿来一用。下面上Delphi写的gb2py函数。function gb2py(hanzi:pchar):pchar;varSfile:Tmemorystream;pos,temp,ipos,len:integer;py:array[0..20] of char;beginpos:=($fe-$a1)*(ord(hanzi[0])-$b0)+ord(hanzi[1])-$a1;sfile:=Tmemorystream.create;sfile.loadfromfile('C:Filespy.idx');//data:=sfile.memory;sfile.Seek($1608+pos*4,soFromBeginning);sfile.Read(ipos,4);sfile.Read(temp,4);len:=temp-ipos;sfile.Seek(ipos+1,soFromBeginning);sfile.Read(py,len);py[len-1]:=#0;sfile.Free;result:=py;end;