delphi2007 教程

delphi2007 教程

首页 新随笔 联系 聚合 管理
  1013 Posts :: 0 Stories :: 28 Comments :: 0 Trackbacks
关于汉字生成拼音的的函数 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiAPI/html/delphi_20061114182436234.html
怎么把一个调用一个函数就能把一个汉字生成拼音  
   
  比如输入"青霉素"生成"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的,内码转换吧!

http://www.dullwolf.cn/  
   
  去下载汉字转换拼音程序,代码公开的,可以转换成任何程序语言,英文操作系统下好使.  
   
  qù     xià     zǎi     hàn     zì     zhuǎn     huàn     pīn     yīn     chéng     xù   ,   dài     mǎ     gōng     kāi     de     ,   kě     yǐ     zhuǎn     huàn     chéng     rèn     hé     chéng     xù     yǔ     yán   ,   yīng     wén    
   
    cāo     zuò     xì     tǒng     xià     hǎo     shǐ   .  
   
  支持大部分多音字  
    zhī     chí     dà     bù     fēn     duō     yīn     zì    
   
  很长     长远         长久  
  hěn     cháng         cháng     yuǎn             cháng     jiǔ    
  生长     成长    
  shēng   zhǎng         chéng     zhǎng  
   
  zhù     fú     suǒ     yǒu     xiōng   di     jiě     mèi     ,     xīn     de     yī     nián     ,     yǒu     gèng     duō     shōu     huò    
   
  祝福所有兄弟姐妹,新的一年,有更多收获  
   
   
  cún     zài     wèn     tí     :   --------   hào     hē     jiǔ     。  
  存在问题:--------好喝酒。  
  fēn     xī     yuán     yīn     :   --------   jiǔ     hǎo     hē     。  
  分析原因:--------酒好喝。  
  zǒng     jié     jīng     yàn     :   --------   hē     jiǔ     hǎo     。  
  总结经验:--------喝酒好。  
  zhěng     gǎi     cuò     shī     :   --------   jiǔ     hē     hǎo     。  
  整改措施:--------酒喝好。  
  nǔ     lì     fāng     xiàng     :   --------   hē     hǎo     jiǔ     。  
  努力方向:--------喝好酒。  
 

posted on 2009-02-03 09:49 delphi2007 阅读(137) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。