我这里只有1类汉字的,谢霆锋的霆字都不认识!~急呀!!谁有呀,帮帮忙啦,来来,我是一只菜鸟,来来来来来来……

解决方案 »

  1.   

    Option Explicit
    '****************************************
    '获得汉字的拼音
    '****************************************
    Private DictColl As New Scripting.Dictionary  '拼音数据关键字和条目对
    Public ErrNum As Long                     '错误码
    Public ErrString As String
    Public SpacePY As String
    Private Function FindPY(Num As Long) As String
        Dim ItemsList
        Dim KeysList
        Dim I As Integer
        
        On Error GoTo ERR_DO
        If Num > 0 And Num < 160 Then
            FindPY = Chr(Num)
        Else
             If Num < -20319 Or Num > -10247 Then
                FindPY = ""
             Else
                ItemsList = DictColl.Items
                KeysList = DictColl.Keys
                For I = DictColl.Count - 1 To 0 Step -1
                    If ItemsList(I) <= Num Then Exit For
                Next
                FindPY = KeysList(I)
             End If
        End If
    ERR_EXIT:
        Exit Function
    ERR_DO:
        FindPY = ""
        ErrNum = 1002  'Err.Number
        ErrString = "检索汉字拼音失败!" '& vbCrLf & vbCrLf & Err.Description
        GoTo ERR_EXITEnd Function
    Public Function GetPY(ByVal strT As String) As String
        Dim I As Integer
        
        On Error GoTo ERR_DO
        ErrNum = 0
        ErrString = ""
        GetPY = ""
        If SpacePY & "" = "" Then
            SpacePY = " "
        Else
            SpacePY = Left(SpacePY, 1)
        End If
        For I = 1 To Len(strT)
            If GetPY = "" Then
                GetPY = GetPY & FindPY(Asc(Mid(strT, I, 1)))
            Else
                GetPY = GetPY & SpacePY & FindPY(Asc(Mid(strT, I, 1)))
            End If
        Next
    ERR_EXIT:
        Exit Function
    ERR_DO:
        GetPY = ""
        ErrNum = 1001 ' Err.Number
        ErrString = "检索汉字拼音失败!" '& vbCrLf & vbCrLf & Err.Description
        GoTo ERR_EXIT
    End FunctionPrivate Sub Class_Initialize()
        '初始化
        On Error GoTo ERR_DO
        SpacePY = " "
        'Set DictColl = CreateObject("Scripting.Dictionary")
        With DictColl
            .Add "a", -20319
            .Add "ai", -20317
            .Add "an", -20304
            .Add "ang", -20295
            .Add "ao", -20292
            .Add "ba", -20283
            .Add "bai", -20265
            .Add "ban", -20257
            .Add "bang", -20242
            .Add "bao", -20230
            .Add "bei", -20051
            .Add "ben", -20036
            .Add "beng", -20032
            .Add "bi", -20026
            .Add "bian", -20002
            .Add "biao", -19990
            .Add "bie", -19986
            .Add "bin", -19982
            .Add "bing", -19976
            .Add "bo", -19805
            .Add "bu", -19784
            .Add "ca", -19775
            .Add "cai", -19774
            .Add "can", -19763
            .Add "cang", -19756
            .Add "cao", -19751
            .Add "ce", -19746
            .Add "ceng", -19741
            .Add "cha", -19739
            .Add "chai", -19728
            .Add "chan", -19725
            .Add "chang", -19715
            .Add "chao", -19540
            .Add "che", -19531
            .Add "chen", -19525
            .Add "cheng", -19515
            .Add "chi", -19500
            .Add "chong", -19484
            .Add "chou", -19479
            .Add "chu", -19467
            .Add "chuai", -19289
            .Add "chuan", -19288
            .Add "chuang", -19281
            .Add "chui", -19275
            .Add "chun", -19270
            .Add "chuo", -19263
            .Add "ci", -19261
            .Add "cong", -19249
            .Add "cou", -19243
            .Add "cu", -19242
            .Add "cuan", -19238
            .Add "cui", -19235
            .Add "cun", -19227
            .Add "cuo", -19224
            .Add "da", -19218
            .Add "dai", -19212
            .Add "dan", -19038
            .Add "dang", -19023
            .Add "dao", -19018
            .Add "de", -19006
            .Add "deng", -19003
            .Add "di", -18996
            .Add "dian", -18977
            .Add "diao", -18961
            .Add "die", -18952
            .Add "ding", -18783
            .Add "diu", -18774
            .Add "dong", -18773
            .Add "dou", -18763
            .Add "du", -18756
            .Add "duan", -18741
            .Add "dui", -18735
            .Add "dun", -18731
            .Add "duo", -18722
            .Add "e", -18710
            .Add "en", -18697
            .Add "er", -18696
            .Add "fa", -18526
            .Add "fan", -18518
            .Add "fang", -18501
            .Add "fei", -18490
            .Add "fen", -18478
            .Add "feng", -18463
            .Add "fo", -18448
            .Add "fou", -18447
            .Add "fu", -18446
            .Add "ga", -18239
            .Add "gai", -18237
            .Add "gan", -18231
            .Add "gang", -18220
            .Add "gao", -18211
            .Add "ge", -18201
            .Add "gei", -18184
            .Add "gen", -18183
            .Add "geng", -18181
            .Add "gong", -18012
            .Add "gou", -17997
            .Add "gu", -17988
            .Add "gua", -17970
            .Add "guai", -17964
            .Add "guan", -17961
            .Add "guang", -17950
            .Add "gui", -17947
            .Add "gun", -17931
            .Add "guo", -17928
            .Add "ha", -17922
            .Add "hai", -17759
            .Add "han", -17752
            .Add "hang", -17733
            .Add "hao", -17730
            .Add "he", -17721
            .Add "hei", -17703
            .Add "hen", -17701
            .Add "heng", -17697
            .Add "hong", -17692
            .Add "hou", -17683
            .Add "hu", -17676
            .Add "hua", -17496
            .Add "huai", -17487
            .Add "huan", -17482
            .Add "huang", -17468
            .Add "hui", -17454
            .Add "hun", -17433
            .Add "huo", -17427
            .Add "ji", -17417
            .Add "jia", -17202
            .Add "jian", -17185
            .Add "jiang", -16983
            .Add "jiao", -16970
            .Add "jie", -16942
            .Add "jin", -16915
            .Add "jing", -16733
            .Add "jiong", -16708
            .Add "jiu", -16706
            .Add "ju", -16689
            .Add "juan", -16664
            .Add "jue", -16657
            .Add "jun", -16647
            .Add "ka", -16474
            .Add "kai", -16470
            .Add "kan", -16465
            .Add "kang", -16459
            .Add "kao", -16452
            .Add "ke", -16448
            .Add "ken", -16433
            .Add "keng", -16429
            .Add "kong", -16427
            .Add "kou", -16423
            .Add "ku", -16419
      

  2.   

    .Add "kua", -16412
            .Add "kuai", -16407
            .Add "kuan", -16403
            .Add "kuang", -16401
            .Add "kui", -16393
            .Add "kun", -16220
            .Add "kuo", -16216
            .Add "la", -16212
            .Add "lai", -16205
            .Add "lan", -16202
            .Add "lang", -16187
            .Add "lao", -16180
            .Add "le", -16171
            .Add "lei", -16169
            .Add "leng", -16158
            .Add "li", -16155
            .Add "lia", -15959
            .Add "lian", -15958
            .Add "liang", -15944
            .Add "liao", -15933
            .Add "lie", -15920
            .Add "lin", -15915
            .Add "ling", -15903
            .Add "liu", -15889
            .Add "long", -15878
            .Add "lou", -15707
            .Add "lu", -15701
            .Add "lv", -15681
            .Add "luan", -15667
            .Add "lue", -15661
            .Add "lun", -15659
            .Add "luo", -15652
            .Add "ma", -15640
            .Add "mai", -15631
            .Add "man", -15625
            .Add "mang", -15454
            .Add "mao", -15448
            .Add "me", -15436
            .Add "mei", -15435
            .Add "men", -15419
            .Add "meng", -15416
            .Add "mi", -15408
            .Add "mian", -15394
            .Add "miao", -15385
            .Add "mie", -15377
            .Add "min", -15375
            .Add "ming", -15369
            .Add "miu", -15363
            .Add "mo", -15362
            .Add "mou", -15183
            .Add "mu", -15180
            .Add "na", -15165
            .Add "nai", -15158
            .Add "nan", -15153
            .Add "nang", -15150
            .Add "nao", -15149
            .Add "ne", -15144
            .Add "nei", -15143
            .Add "nen", -15141
            .Add "neng", -15140
            .Add "ni", -15139
            .Add "nian", -15128
            .Add "niang", -15121
            .Add "niao", -15119
            .Add "nie", -15117
            .Add "nin", -15110
            .Add "ning", -15109
            .Add "niu", -14941
            .Add "nong", -14937
            .Add "nu", -14933
            .Add "nv", -14930
            .Add "nuan", -14929
            .Add "nue", -14928
            .Add "nuo", -14926
            .Add "o", -14922
            .Add "ou", -14921
            .Add "pa", -14914
            .Add "pai", -14908
            .Add "pan", -14902
            .Add "pang", -14894
            .Add "pao", -14889
            .Add "pei", -14882
            .Add "pen", -14873
            .Add "peng", -14871
            .Add "pi", -14857
            .Add "pian", -14678
            .Add "piao", -14674
            .Add "pie", -14670
            .Add "pin", -14668
            .Add "ping", -14663
            .Add "po", -14654
            .Add "pu", -14645
            .Add "qi", -14630
            .Add "qia", -14594
            .Add "qian", -14429
            .Add "qiang", -14407
            .Add "qiao", -14399
            .Add "qie", -14384
            .Add "qin", -14379
            .Add "qing", -14368
            .Add "qiong", -14355
            .Add "qiu", -14353
            .Add "qu", -14345
            .Add "quan", -14170
            .Add "que", -14159
            .Add "qun", -14151
            .Add "ran", -14149
            .Add "rang", -14145
            .Add "rao", -14140
            .Add "re", -14137
            .Add "ren", -14135
            .Add "reng", -14125
            .Add "ri", -14123
            .Add "rong", -14122
            .Add "rou", -14112
            .Add "ru", -14109
            .Add "ruan", -14099
            .Add "rui", -14097
            .Add "run", -14094
            .Add "ruo", -14092
            .Add "sa", -14090
            .Add "sai", -14087
            .Add "san", -14083
            .Add "sang", -13917
            .Add "sao", -13914
            .Add "se", -13910
            .Add "sen", -13907
            .Add "seng", -13906
            .Add "sha", -13905
            .Add "shai", -13896
            .Add "shan", -13894
            .Add "shang", -13878
            .Add "shao", -13870
            .Add "she", -13859
            .Add "shen", -13847
            .Add "sheng", -13831
            .Add "shi", -13658
            .Add "shou", -13611
            .Add "shu", -13601
            .Add "shua", -13406
            .Add "shuai", -13404
            .Add "shuan", -13400
            .Add "shuang", -13398
            .Add "shui", -13395
            .Add "shun", -13391
            .Add "shuo", -13387
            .Add "si", -13383
            .Add "song", -13367
            .Add "sou", -13359
            .Add "su", -13356
            .Add "suan", -13343
            .Add "sui", -13340
            .Add "sun", -13329
            .Add "suo", -13326
            .Add "ta", -13318
            .Add "tai", -13147
            .Add "tan", -13138
            .Add "tang", -13120
            .Add "tao", -13107
            .Add "te", -13096
            .Add "teng", -13095
            .Add "ti", -13091
            .Add "tian", -13076
            .Add "tiao", -13068
            .Add "tie", -13063
            .Add "ting", -13060
            .Add "tong", -12888
            .Add "tou", -12875
            .Add "tu", -12871
            .Add "tuan", -12860
            .Add "tui", -12858
            .Add "tun", -12852
            .Add "tuo", -12849
            .Add "wa", -12838
            .Add "wai", -12831
            .Add "wan", -12829
            .Add "wang", -12812
            .Add "wei", -12802
            .Add "wen", -12607
            .Add "weng", -12597
            .Add "wo", -12594
            .Add "wu", -12585
            .Add "xi", -12556
            .Add "xia", -12359
            .Add "xian", -12346
            .Add "xiang", -12320
            .Add "xiao", -12300
            .Add "xie", -12120
            .Add "xin", -12099
            .Add "xing", -12089
            .Add "xiong", -12074
            .Add "xiu", -12067
            .Add "xu", -12058
            .Add "xuan", -12039
            .Add "xue", -11867
            .Add "xun", -11861
            .Add "ya", -11847
            .Add "yan", -11831
            .Add "yang", -11798
            .Add "yao", -11781
            .Add "ye", -11604
            .Add "yi", -11589
            .Add "yin", -11536
            .Add "ying", -11358
            .Add "yo", -11340
            .Add "yong", -11339
            .Add "you", -11324
            .Add "yu", -11303
            .Add "yuan", -11097
            .Add "yue", -11077
            .Add "yun", -11067
            .Add "za", -11055
            .Add "zai", -11052
            .Add "zan", -11045
            .Add "zang", -11041
            .Add "zao", -11038
            .Add "ze", -11024
            .Add "zei", -11020
            .Add "zen", -11019
            .Add "zeng", -11018
            .Add "zha", -11014
            .Add "zhai", -10838
            .Add "zhan", -10832
            .Add "zhang", -10815
            .Add "zhao", -10800
            .Add "zhe", -10790
            .Add "zhen", -10780
            .Add "zheng", -10764
            .Add "zhi", -10587
            .Add "zhong", -10544
            .Add "zhou", -10533
            .Add "zhu", -10519
            .Add "zhua", -10331
            .Add "zhuai", -10329
            .Add "zhuan", -10328
            .Add "zhuang", -10322
            .Add "zhui", -10315
            .Add "zhun", -10309
            .Add "zhuo", -10307
            .Add "zi", -10296
            .Add "zong", -10281
            .Add "zou", -10274
            .Add "zu", -10270
            .Add "zuan", -10262
            .Add "zui", -10260
            .Add "zun", -10256
            .Add "zuo", -10254
        End With
        ErrNum = 0
        ErrString = ""
    ERR_EXIT:
        Exit Sub
    ERR_DO:
        ErrNum = 1000 'Err.Number
        ErrString = "初始化Dictionary失败!" '& vbCrLf & vbCrLf & Err.Description
        GoTo ERR_EXIT
    End Sub
      

  3.   

    不过,似乎有些非常用字不行!试试下面的!!(我没试过,呵呵)
    Public Function GetPY(a1 As String) As String
    Dim t1 As String
    If Asc(a1) < 0 Then
    t1 = Left(a1, 1)
    If Asc(t1) < Asc("啊") Then
    GetPY = "0"
    Exit Function
    End If
    If Asc(t1) >= Asc("啊") And Asc(t1) < Asc("芭") Then
    GetPY = "A"
    Exit Function
    End If
    If Asc(t1) >= Asc("芭") And Asc(t1) < Asc("擦") Then
    GetPY = "B"
    Exit Function
    End If
    If Asc(t1) >= Asc("擦") And Asc(t1) < Asc("搭") Then
    GetPY = "C"
    Exit Function
    End If
    If Asc(t1) >= Asc("搭") And Asc(t1) < Asc("蛾") Then
    GetPY = "D"
    Exit Function
    End If
    If Asc(t1) >= Asc("蛾") And Asc(t1) < Asc("发") Then
    GetPY = "E"
    Exit Function
    End If
    If Asc(t1) >= Asc("发") And Asc(t1) < Asc("噶") Then
    GetPY = "F"
    Exit Function
    End If
    If Asc(t1) >= Asc("噶") And Asc(t1) < Asc("哈") Then
    GetPY = "G"
    Exit Function
    End If
    If Asc(t1) >= Asc("哈") And Asc(t1) < Asc("击") Then
    GetPY = "H"
    Exit Function
    End If
    If Asc(t1) >= Asc("击") And Asc(t1) < Asc("喀") Then
    GetPY = "J"
    Exit Function
    End If
    If Asc(t1) >= Asc("喀") And Asc(t1) < Asc("垃") Then
    GetPY = "K"
    Exit Function
    End If
    If Asc(t1) >= Asc("垃") And Asc(t1) < Asc("妈") Then
    GetPY = "L"
    Exit Function
    End If
    If Asc(t1) >= Asc("妈") And Asc(t1) < Asc("拿") Then
    GetPY = "M"
    Exit Function
    End If
    If Asc(t1) >= Asc("拿") And Asc(t1) < Asc("哦") Then
    GetPY = "N"
    Exit Function
    End If
    If Asc(t1) >= Asc("哦") And Asc(t1) < Asc("啪") Then
    GetPY = "O"
    Exit Function
    End If
    If Asc(t1) >= Asc("啪") And Asc(t1) < Asc("期") Then
    GetPY = "P"
    Exit Function
    End If
    If Asc(t1) >= Asc("期") And Asc(t1) < Asc("然") Then
    GetPY = "Q"
    Exit Function
    End If
    If Asc(t1) >= Asc("然") And Asc(t1) < Asc("撒") Then
    GetPY = "R"
    Exit Function
    End If
    If Asc(t1) >= Asc("撒") And Asc(t1) < Asc("塌") Then
    GetPY = "S"
    Exit Function
    End If
    If Asc(t1) >= Asc("塌") And Asc(t1) < Asc("挖") Then
    GetPY = "T"
    Exit Function
    End If
    If Asc(t1) >= Asc("挖") And Asc(t1) < Asc("昔") Then
    GetPY = "W"
    Exit Function
    End If
    If Asc(t1) >= Asc("昔") And Asc(t1) < Asc("压") Then
    GetPY = "X"
    Exit Function
    End If
    If Asc(t1) >= Asc("压") And Asc(t1) < Asc("匝") Then
    GetPY = "Y"
    Exit Function
    End If
    If Asc(t1) >= Asc("匝") Then
    GetPY = "Z"
    Exit Function
    End If
    Else
    If UCase(a1) <= "Z" And UCase(a1) >= "A" Then
    GetPY = UCase(Left(a1, 1))
    Else
    GetPY = "0"
    End If
    End If
    End Function
      

  4.   

    获取指定汉字的拼音索引字母,如:“汉”的索引字母是“H”}
    function GetPYIndexChar(hzchar: string): char;
    begin
      case WORD(hzchar[1]) shl 8 + WORD(hzchar[2]) of
        $B0A1..$B0C4: result := 'A';
        $B0C5..$B2C0: result := 'B';
        $B2C1..$B4ED: result := 'C';
        $B4EE..$B6E9: result := 'D';
        $B6EA..$B7A1: result := 'E';
        $B7A2..$B8C0: result := 'F';
        $B8C1..$B9FD: result := 'G';
        $B9FE..$BBF6: result := 'H';
        $BBF7..$BFA5: result := 'J';
        $BFA6..$C0AB: result := 'K';
        $C0AC..$C2E7: result := 'L';
        $C2E8..$C4C2: result := 'M';
        $C4C3..$C5B5: result := 'N';
        $C5B6..$C5BD: result := 'O';
        $C5BE..$C6D9: result := 'P';
        $C6DA..$C8BA: result := 'Q';
        $C8BB..$C8F5: result := 'R';
        $C8F6..$CBF9: result := 'S';
        $CBFA..$CDD9: result := 'T';
        $CDDA..$CEF3: result := 'W';
        $CEF4..$D188: result := 'X';
        $D1B9..$D4D0: result := 'Y';
        $D4D1..$D7F9: result := 'Z';
      else
        result := char(0);
      end;
    end;
      

  5.   

    再试下这个:
    unit HzSpell;interfaceuses
      Windows, Messages, SysUtils, Classes;type
      THzSpell = class(TComponent)
      protected
        FHzText: String;
        FSpell: String;
        FSpellH: String;
        procedure SetHzText(const Value: String);
        function GetHzSpell: String;
        function GetPyHead: String;
      public
        class function PyOfHz(Hz: String): String;
        class function PyHeadOfHz(Hz: String): String;
      published
        property HzText: String read FHzText write SetHzText;
        property HzSpell: String read GetHzSpell;
        property PyHead: String read GetPyHead;
      end;{$I HzSpDat2.inc}procedure Register;function GetHzPy(HzChar: PChar; Len: Integer): String;
    function GetHzPyFull(HzChar: String): String;
    function GetHzPyHead(HzChar: PChar; Len: Integer): String;
    function GetPyChars(HzChar: String): String;implementationprocedure Register;
    begin
      RegisterComponents('System', [THzSpell]);
    end;function GetHzPy(HzChar: PChar; Len: Integer): String;
    var
      C: Char;
      Index: Integer;
    begin
      Result := '';
      if (Len > 1) and (HzChar[0] >= #129) and (HzChar[1] >= #64) then
      begin
        //是否为 GBK 字符
        case HzChar[0] of
          #163:  // 全角 ASCII
          begin
            C := Chr(Ord(HzChar[1]) - 128);
            if C in ['a'..'z', 'A'..'Z', '0'..'9', '(', ')', '[', ']'] then
              Result := C
            else
              Result := '';
          end;
          #162: // 罗马数字
          begin
            if HzChar[1] > #160 then
              Result := CharIndex[Ord(HzChar[1]) - 160]
            else
              Result := '';
          end;
          #166: // 希腊字母
          begin
            if HzChar[1] in [#$A1..#$B8] then
              Result := CharIndex2[Ord(HzChar[1]) - $A0]
            else if HzChar[1] in [#$C1..#$D8] then
              Result := CharIndex2[Ord(HzChar[1]) - $C0]
            else
              Result := '';
          end;
          else
          begin  // 获得拼音索引
            Index := PyCodeIndex[Ord(HzChar[0]) - 128, Ord(HzChar[1]) - 63];
            if Index = 0 then
              Result := ''
            else
              Result := PyMusicCode[Index];
          end;
        end;
      end
      else if Len > 0 then
      begin
        //在 GBK 字符集外, 即半角字符
        if HzChar[0] in ['a'..'z', 'A'..'Z', '0'..'9', '(', ')', '[', ']'] then
          Result := HzChar[0]
        else
          Result := '';
      end;
    end;function GetHzPyFull(HzChar: String): String;
    var
      i, len: Integer;
      Py: String;
      function IsDouByte(C: Char): Boolean;
      begin
        Result := C >= #129;
      end;
    begin
      Result := '';
      i := 1;
      while i <= Length(HzChar) do
      begin
        if IsDouByte(HzChar[i]) and (Length(HzChar) - i > 0) then
          len := 2
        else
          len := 1;
        Py := GetHzPy(@HzChar[i], len);
        Inc(i, len);
        if (Result <> '') and (Py <> '') then
          Result := Result + ' ' + Py           // + ' '
        else
          Result := Result + Py;
      end;
    end;function GetHzPyHead(HzChar: PChar; Len: Integer): String;
    begin
      Result := Copy(GetHzPy(HzChar, Len), 1, 1);
    end;function GetPyChars(HzChar: String): String;
    var
      i, len: Integer;
      Py: String;
      function IsDouByte(C: Char): Boolean;
      begin
        Result := C >= #129;
      end;
    begin
      Result := '';
      i := 1;
      while i <= Length(HzChar) do
      begin
        if IsDouByte(HzChar[i]) and (Length(HzChar) - i > 0) then
          len := 2
        else
          len := 1;
        Py := GetHzPyHead(@HzChar[i], len);
        Inc(i, len);
        Result := Result + Py;
      end;
    end;{ THzSpell }function THzSpell.GetHzSpell: String;
    begin
      if FSpell = '' then
      begin
        Result := GetHzPyFull(FHzText);
        FSpell := Result;
      end
      else Result := FSpell;
    end;function THzSpell.GetPyHead: String;
    begin
      if FSpellH = '' then
      begin
        Result := GetPyChars(FHzText);
        FSpellH := Result;
      end
      else Result := FSpellH;
    end;class function THzSpell.PyHeadOfHz(Hz: String): String;
    begin
      Result := GetPyChars(Hz);
    end;class function THzSpell.PyOfHz(Hz: String): String;
    begin
      Result := GetHzPyFull(Hz);
    end;procedure THzSpell.SetHzText(const Value: String);
    begin
      FHzText := Value;
      FSpell := '';
      FSpellH := '';
    end;end.
      

  6.   

    我也有一个
    可惜,不是Delphi写的。想改写一下,可是不少函数忘了。公司不用Delphi,手头也没有资料。水水你自己看着改吧。保存在Word文档里,所以有点乱。
    //Function name   :  uf_GetFirstLetter
    //Used to:返回给定汉字串的首字母串,即声母串
    //Input Arguments: as_InputString - string , 给定的汉字串
    //Return Value: ls_ReturnString - String , 给定的汉字串的声母串,一律为小写
    //Notice: 1. 此方法基于汉字的国标汉字库区位编码的有效性,不符合此编码的系统此函
    //数无效!
    //2. 若汉字串含有非汉字字符,如图形符号或ASCII码,则这些非汉字字符
    //将保持不变.
    //Sample: ls_rtn =uf_GetFirstLetter("中华人民共和国") 
    //                               ls_rtn will be : zhrmghg//Scripts:
    char      lc_FirstLetter[23]            //存放国标一级汉字不同读音的起始区位码对应读音
    string    ls_ch                                //临时单元
    string    ls_SecondSecTable        //存放所有国标二级汉字读音
    string    ls_ReturnStr                   //返回串
    integer  li_SecPosValue[23]        //存放国标一级汉字不同读音的起始区位码
    integer  i , j 
    integer  li_SectorCode                 //汉字区码
    integer  li_PositionCode               //汉字位码
    integer  li_SecPosCode               //汉字区位码
    integer  li_offset                          //二级字库偏移量//Set initial value
    li_SecPosValue[]={1601,1637,1833,2078,2274,2302,2433,2594,2787,3106,3212,3472,3635,3722,3730,3858,4027,4086,4390,4558,4684,4925,5249 }
    lc_FirstLetter[]   = {"A", "B","C","D","E","F","G","H","J","K","L","M","N","O","P","Q","R","S","T","W","X","Y","Z"}
    ls_SecondSecTable="CJWGNSPGCGNE[Y[BTYYZDXYKYGT[JNNJQMBSGZSCYJSYY[PGKBZGY[YWJKGKLJYWKPJQHY[W[DZLSGMRYPYWWCCKZNKYYGTTNJJNYKKZYTCJNMCYLQLYPYQFQRPZSLWBTGKJFYXJWZLTBNCXJJJJTXDTTSQZYCDXXHGCK[PHFFSS[YBGXLPPBYLL[HLXS[ZM[JHSOJNGHDZQYKLGJHSGQZHXQGKEZZWYSCSCJXYEYXADZPMDSSMZJZQJYZC[J[WQJBYZPXGZNZCPWHKXHQKMWFBPBYDTJZZKQHYLYGXFPTYJYYZPSZLFCHMQSHGMXXSXJ[[DCSBBQBEFSJYHXWGZKPYLQBGLDLCCTNMAYDDKSSNGYCSGXLYZAYBNPTSDKDYLHGYMYLCXPY[JNDQJWXQXFYYFJLEJPZRXCCQWQQSBNKYMGPLBMJRQCFLNYMYQMSQYRBCJTHZTQFRXQHXMJJCJLXQGJMSHZKBSWYEMYLTXFSYDSWLYCJQXSJNQBSCTYHBFTDCYZDJWYGHQFRXWCKQKXEBPTLPXJZSRMEBWHJLBJSLYYSMDXLCLQKXLHXJRZJMFQHXHWYWSBHTRXXGLHQHFNM[YKLDYXZPYLGG[MTCFPAJJZYLJTYANJGBJPLQGDZYQYAXBKYSECJSZNSLYZHSXLZCGHPXZHZNYTDSBCJKDLZAYFMYDLEBBGQYZKXGLDNDNYSKJSHDLYXBCGHXYPKDJMMZNGMMCLGWZSZXZJFZNMLZZTHCSYDBDLLSCDDNLKJYKJSYCJLKWHQASDKNHCSGANHDAASHTCPLCPQYBSDMPJLPZJOQLCDHJJYSPRCHN[NNLHLYYQYHWZPTCZGWWMZFFJQQQQYXACLBHKDJXDGMMYDJXZLLSYGXGKJRYWZWYCLZMSSJZLDBYD[FCXYHLXCHYZJQ[[QAGMNYXPFRKSSBJLYXYSYGLNSCMHZWWMNZJJLXXHCHSY[[TTXRYCYXBYHCSMXJSZNPWGPXXTAYBGAJCXLY[DCCWZOCWKCCSBNHCPDYZNFCYYTYCKXKYBSQKKYTQQXFCWCHCYKELZQBSQYJQCCLMTHSYWHMKTLKJLYCXWHEQQHTQH[PQ[QSCFYMNDMGBWHWLGSLLYSDLMLXPTHMJHWLJZYHZJXHTXJLHXRSWLWZJCBXMHZQXSDZPMGFCSGLSXYMJSHXPJXWMYQKSMYPLRTHBXFTPMHYXLCHLHLZYLXGSSSSTCLSLDCLRPBHZHXYYFHB[GDMYCNQQWLQHJJ[YWJZYEJJDHPBLQXTQKWHLCHQXAGTLXLJXMSL[HTZKZJECXJCJNMFBY[SFYWYBJZGNYSDZSQYRSLJPCLPWXSDWEJBJCBCNAYTWGMPAPCLYQPCLZXSBNMSGGFNZJJBZSFZYNDXHPLQKZCZWALSBCCJX[YZGWKYPSGXFZFCDKHJGXDLQFSGDSLQWZKXTMHSBGZMJZRGLYJBPMLMSXLZJQQHZYJCZYDJWBMYKLDDPMJEGXYHYLXHLQYQHKYCWCJMYYXNATJHYCCXZPCQLBZWWYTWBQCMLPMYRJCCCXFPZNZZLJPLXXYZTZLGDLDCKLYRZZGQTGJHHGJLJAXFGFJZSLCFDQZLCLGJDJCSNZLLJPJQDCCLCJXMYZFTSXGCGSBRZXJQQCTZHGYQTJQQLZXJYLYLBCYAMCSTYLPDJBYREGKLZYZHLYSZQLZNWCZCLLWJQJJJKDGJZOLBBZPPGLGHTGZXYGHZMYCNQSYCYHBHGXKAMTXYXNBSKYZZGJZLQJDFCJXDYGJQJJPMGWGJJJPKQSBGBMMCJSSCLPQPDXCDYYKY[CJDDYYGYWRHJRTGZNYQLDKLJSZZGZQZJGDYKSHPZMTLCPWNJAFYZDJCNMWESCYGLBTZCGMSSLLYXQSXSBSJSBBSGGHFJLYPMZJNLYYWDQSHZXTYYWHMZYHYWDBXBTLMSYYYFSXJC[DXXLHJHF[SXZQHFZMZCZTQCXZXRTTDJHNNYZQQMNQDMMG[YDXMJGDHCDYZBFFALLZTDLTFXMXQZDNGWQDBDCZJDXBZGSQQDDJCMBKZFFXMKDMDSYYSZCMLJDSYNSBRSKMKMPCKLGDBQTFZSWTFGGLYPLLJZHGJ[GYPZLTCSMCNBTJBQFKTHBYZGKPBBYMTDSSXTBNPDKLEYCJNYDDYKZDDHQHSDZSCTARLLTKZLGECLLKJLQJAQNBDKKGHPJTZQKSECSHALQFMMGJNLYJBBTMLYZXDCJPLDLPCQDHZYCBZSCZBZMSLJFLKRZJSNFRGJHXPDHYJYBZGDLQCSEZGXLBLGYXTWMABCHECMWYJYZLLJJYHLG[DJLSLYGKDZPZXJYYZLWCXSZFGWYYDLYHCLJSCMBJHBLYZLYCBLYDPDQYSXQZBYTDKYXJY[CNRJMPDJGKLCLJBCTBJDDBBLBLCZQRPPXJCJLZCSHLTOLJNMDDDLNGKAQHQHJGYKHEZNMSHRP[QQJCHGMFPRXHJGDYCHGHLYRZQLCYQJNZSQTKQJYMSZSWLCFQQQXYFGGYPTQWLMCRNFKKFSYYLQBMQAMMMYXCTPSHCPTXXZZSMPHPSHMCLMLDQFYQXSZYYDYJZZHQPDSZGLSTJBCKBXYQZJSGPSXQZQZRQTBDKYXZKHHGFLBCSMDLDGDZDBLZYYCXNNCSYBZBFGLZZXSWMSCCMQNJQSBDQSJTXXMBLTXZCLZSHZCXRQJGJYLXZFJPHYMZQQYDFQJJLZZNZJCDGZYGCTXMZYSCTLKPHTXHTLBJXJLXSCDQXCBBTJFQZFSLTJBTKQBXXJJLJCHCZDBZJDCZJDCPRNPQCJPFCZLCLZXZDMXMPHJSGZGSZZQLYLWTJPFSYASMCJBTZKYCWMYTCSJJLJCQLWZMALBXYFBPNLSFHTGJWEJJXXGLLJSTGSHJQLZFKCGNNNSZFDEQFHBSAQTGYLBXMMYGSZLDYDQMJJRGBJTKGDHGKBLQKBDMBYLXWCXYTTYBKMRTJZXQJBHLMHMJJZMQASLDCYXYQDLQCAFYWYXQHZ "//Get it !
    ls_ReturnStr = ""    
    For i=1 to Len(as_InputString)                 //依次处理as_InputString中每个字符
    ls_ch=Mid(as_InputString , i , 1)      
          If Asc(ls_ch)<128  then                      //  非汉字
              ls_returnStr = ls_returnStr+ls_ch    //  不变
          Else                                                     //   是汉字
              ls_ch = Mid(as_InputString , i , 2)        // 取出此汉字
              li_SectorCode = Asc(Left(ls_ch, 1)) - 160        //区码
              li_PositionCode = Asc(Right(ls_ch, 1)) - 160   //位码
              li_SecPosCode = li_SectorCode*100 +  li_PositionCode            // 区位码
              If li_SecPosCode>1600  and  li_SecPosCode<5590   then         //  第一个字符
                  For j=23 to 1 Step -1               // 找声母
                       If li_SecPosCode>=li_SecPosValue[j] then
                            ls_returnStr = ls_returnStr +  lc_FirstLetter[j]
                            Exit
                       End if
                  Next
              Else                                              //  第一个字符
                   li_offset = (li_SectorCode - 56 ) *94 + li_PositionCode - 1      // 计算偏移量
                   If li_offset>=0  and li_offset<=3007      then                             //二区汉字
                       ls_returnStr = ls_returnStr + Mid(ls_SecondSecTable, li_offset , 1)       //取出此字声母
                   End if
              End if
              i = i+1                   //    指向下一个汉字
        End if
    Next // 处理完毕//Return result 
    Return    lower( ls_returnStr )//返回 as_InputString 的声母串
      

  7.   

    to : Wally_wu(不想再写代码) {$I HzSpDat2.inc} 这个文件涅???
      

  8.   

    to : chenjiong(准程序员:升级中....) 邮件收到了!~结账!