delphi 获取汉字拼音首字母


本文整理自网络,侵删。

 
function HZtoPY(HZStr: WideString): String;
Var
  s, c: AnsiString;
  i: Integer;
begin
  Result := '';
  for i := 1 To Length(HZStr) do
  begin
    s := HZStr[I];
    if ByteType(s, 1) = mbSingleByte Then
      c := S
    else
      case word(s[1]) shl 8 + word(s[2]) of
        $B0A1 .. $B0C4: C := 'A';    $B0C5 .. $B2C0: C := 'B';
        $B2C1 .. $B4ED: C := 'C';    $B4EE .. $B6E9: C := 'D';
        $B6EA .. $B7A1: C := 'E';    $B7A2 .. $B8C0: C := 'F';
        $B8C1 .. $B9FD: C := 'G';    $B9FE .. $BBF6: C := 'H';
        $BBF7 .. $BFA5: C := 'J';    $BFA6 .. $C0AB: C := 'K';
        $C0AC .. $C2E7: C := 'L';    $C2E8 .. $C4C2: C := 'M';
        $C4C3 .. $C5B5: C := 'N';    $C5B6 .. $C5BD: C := 'O';
        $C5BE .. $C6D9: C := 'P';    $C6DA .. $C8BA: C := 'Q';
        $C8BB .. $C8F5: C := 'R';    $C8F6 .. $CBF9: C := 'S';
        $CBFA .. $CDD9: C := 'T';    $CDDA .. $CEF3: C := 'W';
        $CEF4 .. $D1B8: C := 'X';    $D1B9 .. $D4D0: C := 'Y';
        $D4D1 .. $D7F9: C := 'Z';
      else
        c := s;
      end;
    Result := Result + C;
  end;
end;

function GetPyCode(AHz : string):string;
var
  i:integer;
  hz: string;
  py: string;

begin
  Result := '';
  for i:=1 to length(Ahz) div 2 do
  begin
    hz := copy(AHz,i*2-1,2);
    py := py + HZtoPY(hz);
  end;
  Result := py;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.text:=GetPyCode('中国');
end;

相关阅读 >>

Delphi 开发64位应用程序使用windows api的注意事项

Delphi 禁止截屏printscreen

Delphi webbrowser1 保存文档为 .html

Delphi 进程程序多开调用单元

Delphi base64单元encddecd的修改

Delphi的tfilestream

Delphi访问mysql乱码问题

Delphi 自我复制源码

Delphi & c++ 安卓使用权限

Delphi 一个文件重复生成的小工具[附源码]

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...