我想知道,如‘我是中国人’这几个字,取他们的汉语拼音的第一个字母,在delphi中
这个代码怎么写呀??详细一点??举个例子?

解决方案 »

  1.   

    一个函数搞定了!!接分。function TForm1.GetPYStr(HZStr: WideString): String;
    Var
     S: String;
     I: Word;
     C: Char;
    begin
     Result := '';
     For I := 1 To Length(HZStr) Do Begin
     S := HZStr[I];
     if Length(S) = 1 Then C := S[1] Else
     case WORD(S[1]) * 256 + Byte(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{原程序为: $D188}: C := 'X'; $D1B9 .. $D4D0: C := 'Y'; $D4D1 .. $D7F9: C := 'Z'; else C := '?';
     end;
     Result := Result + C;
     End;