找回密码
 加入
搜索
查看: 2492|回复: 3

关于#AutoIt3Wrapper_UseAnsi=y的疑问和外一篇。

[复制链接]
发表于 2009-3-4 22:42:50 | 显示全部楼层 |阅读模式
[au3]
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_Version=beta
#AutoIt3Wrapper_Outfile=C:\Documents and Settings\Administrator\桌面\a.exe
#AutoIt3Wrapper_UseAnsi=y
#AutoIt3Wrapper_Res_Fileversion=0.0.0.15
#AutoIt3Wrapper_Res_FileVersion_AutoIncrement=y
#AutoIt3Wrapper_Au3Check_Stop_OnWarning=y
#AutoIt3Wrapper_Run_Tidy=y
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
;根据汉字查询拼音


#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

#include <String.au3>
#include <Array.au3>


#Region ### START Koda GUI section ### Form=C:\Documents and Settings\Administrator\桌面\汉字转换拼音.kxf
$Form1 = GUICreate("姓名汉字转换拼音", 362, 118, 296, 182)
GUISetIcon("D:\009.ico")
$GroupBox1 = GUICtrlCreateGroup("", 8, 8, 257, 65)
$Input = GUICtrlCreateInput("", 104, 32, 137, 21)
$Label1 = GUICtrlCreateLabel("输入姓名汉字", 24, 32, 76, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("确定(&O)", 280, 24, 75, 25, 0)
$Button2 = GUICtrlCreateButton("取消(&C)", 280, 80, 75, 25, 0)
$Label2 = GUICtrlCreateLabel("拼音:", 16, 88, 40, 17)
$Label3 = GUICtrlCreateLabel("", 56, 88, 212, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

                Case $Button1
                        $hz = GUICtrlRead($Input)
                        If $hz = '' Then
                                MsgBox(48, "错误", "请输入汉字")
                        Else
                                $py = _hz2py($hz)
                        EndIf
                        GUICtrlSetData($Label3, $py)
                Case $Button2
                        Exit
        EndSwitch
WEnd

Func _hz2py($Input)
        $mystr = 'a,20319,ai,20317,an,20304,ang,20295,ao,20292,ba,20283,bai,20265,ban,20257,bang,20242,bao,20230,bei,20051,ben,20036,beng,20032,bi,20026,bian,20002,biao,19990,bie,19986,bin,19982,bing,19976,bo,19805,bu,19784,ca,19775,cai,19774,can,19763,cang,19756,cao,19751,ce,19746,ceng,19741,cha,19739,chai,19728,chan,19725,chang,19715,chao,19540,che,19531,chen,19525,cheng,19515,chi,19500,chong,19484,chou,19479,chu,19467,chuai,19289,chuan,19288,chuang,19281,chui,19275,chun,19270,chuo,19263,ci,19261,cong,19249,cou,19243,cu,19242,cuan,19238,cui,19235,cun,19227,cuo,19224,da,19218,dai,19212,dan,19038,dang,19023,dao,19018,de,19006,deng,19003,di,18996,dian,18977,diao,18961,die,18952,ding,18783,diu,18774,dong,18773,dou,18763,du,18756,duan,18741,dui,18735,dun,18731,duo,18722,e,18710,en,18697,er,18696,fa,18526,fan,18518,fang,18501,fei,18490,fen,18478,feng,18463,fo,18448,fou,18447,fu,18446,ga,18239,gai,18237,gan,18231,gang,18220,gao,18211,ge,18201,gei,18184,gen,18183,geng,18181,gong,18012,gou,17997,gu,17988,gua,17970,guai,17964,guan,17961,guang,17950,gui,17947,gun,17931,guo,17928,ha,17922,hai,17759,han,17752,hang,17733,hao,17730,he,17721,hei,17703,hen,17701,heng,17697,hong,17692,hou,17683,hu,17676,hua,17496,huai,17487,huan,17482,huang,17468,hui,17454,hun,17433,huo,17427,ji,17417,jia,17202,jian,17185,jiang,16983,jiao,16970,jie,16942,jin,16915,jing,16733,jiong,16708,jiu,16706,ju,16689,juan,16664,jue,16657,jun,16647,ka,16474,kai,16470,kan,16465,kang,16459,kao,16452,ke,16448,ken,16433,keng,16429,kong,16427,kou,16423,ku,16419,kua,16412,kuai,16407,kuan,16403,kuang,16401,kui,16393,kun,16220,kuo,16216,la,16212,lai,16205,lan,16202,lang,16187,lao,16180,le,16171,lei,16169,leng,16158,li,16155,lia,15959,lian,15958,liang,15944,liao,15933,lie,15920,lin,15915,ling,15903,liu,15889,long,15878,lou,15707,lu,15701,lv,15681,luan,15667,lue,15661,lun,15659,luo,15652,ma,15640,mai,15631,man,15625,mang,15454,mao,15448,me,15436,mei,15435,men,15419,meng,15416,mi,15408,mian,15394,miao,15385,mie,15377,min,15375,ming,15369,miu,15363,mo,15362,mou,15183,mu,15180,na,15165,nai,15158,nan,15153,nang,15150,nao,15149,ne,15144,nei,15143,nen,15141,neng,15140,ni,15139,nian,15128,niang,15121,niao,15119,nie,15117,nin,15110,ning,15109,niu,14941,nong,14937,nu,14933,nv,14930,nuan,14929,nue,14928,nuo,14926,o,14922,ou,14921,pa,14914,pai,14908,pan,14902,pang,14894,pao,14889,pei,14882,pen,14873,peng,14871,pi,14857,pian,14678,piao,14674,pie,14670,pin,14668,ping,14663,po,14654,pu,14645,qi,14630,qia,14594,qian,14429,qiang,14407,qiao,14399,qie,14384,qin,14379,qing,14368,qiong,14355,qiu,14353,qu,14345,quan,14170,que,14159,qun,14151,ran,14149,rang,14145,rao,14140,re,14137,ren,14135,reng,14125,ri,14123,rong,14122,rou,14112,ru,14109,ruan,14099,rui,14097,run,14094,ruo,14092,sa,14090,sai,14087,san,14083,sang,13917,sao,13914,se,13910,sen,13907,seng,13906,sha,13905,shai,13896,shan,13894,shang,13878,shao,13870,she,13859,shen,13847,sheng,13831,shi,13658,shou,13611,shu,13601,shua,13406,shuai,13404,shuan,13400,shuang,13398,shui,13395,shun,13391,shuo,13387,si,13383,song,13367,sou,13359,su,13356,suan,13343,sui,13340,sun,13329,suo,13326,ta,13318,tai,13147,tan,13138,tang,13120,tao,13107,te,13096,teng,13095,ti,13091,tian,13076,tiao,13068,tie,13063,ting,13060,tong,12888,tou,12875,tu,12871,tuan,12860,tui,12858,tun,12852,tuo,12849,wa,12838,wai,12831,wan,12829,wang,12812,wei,12802,wen,12607,weng,12597,wo,12594,wu,12585,xi,12556,xia,12359,xian,12346,xiang,12320,xiao,12300,xie,12120,xin,12099,xing,12089,xiong,12074,xiu,12067,xu,12058,xuan,12039,xue,11867,xun,11861,ya,11847,yan,11831,yang,11798,yao,11781,ye,11604,yi,11589,yin,11536,ying,11358,yo,11340,yong,11339,you,11324,yu,11303,yuan,11097,yue,11077,yun,11067,za,11055,zai,11052,zan,11045,zang,11041,zao,11038,ze,11024,zei,11020,zen,11019,zeng,11018,zha,11014,zhai,10838,zhan,10832,zhang,10815,zhao,10800,zhe,10790,zhen,10780,zheng,10764,zhi,10587,zhong,10544,zhou,10533,zhu,10519,zhua,10331,zhuai,10329,zhuan,10328,zhuang,10322,zhui,10315,zhun,10309,zhuo,10307,zi,10296,zong,10281,zou,10274,zu,10270,zuan,10262,zui,10260,zun,10256,zuo,10254'
        $dict = StringSplit($mystr, ",");字典数组
        $hz_input = StringSplit($Input, '');汉字作为2个字节
        If $hz_input[0] = 1 Then
                $num = Asc($Input)

        Else
                $num = Abs((256 * Asc($hz_input[1]) + Asc($hz_input[2])) - 256 * 256)

        EndIf

        MsgBox(0, '$num值', $num)
        $out = '';输出拼音字串
        Switch $num
                Case $num > 0 And $num < 160
                        $out = $Input
                Case $num > 20319 Or $num < 10247
                        $out = '?'
                Case Else
                        For $i = $dict[0] To 1 Step -1
                                If $num <= Number($dict[$i]) Then
                                        $out = $dict[$i - 1]
                                        ExitLoop
                                EndIf
                        Next
        EndSwitch


        Return $out
EndFunc   ;==>_hz2py
[/au3]

这是一个根据汉字查询拼音的脚本。目前有几个问题:

1、#AutoIt3Wrapper_UseAnsi=y 以后,GUICtrlRead($Input)中输入的中文一个字变成了2个字。如果中英文掺杂在一起,该怎么办啊?目前只能查一个汉字的拼音。

2、这个取拼音的方法有问题,许多字查不到。是我从网上google的一种java方法里移植过来的。
我曾经也试过用搜索winpy.mb,但是码表也不准,比如'胜'会返回好多个拼音。

可有好的查拼音的方法啊?
发表于 2009-3-4 22:55:00 | 显示全部楼层
目前只有汉字 马上停电了 明天补全
[au3]#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_Version=beta
#AutoIt3Wrapper_Outfile=C:\Documents and Settings\Administrator\桌面\a.exe
#AutoIt3Wrapper_UseAnsi=y
#AutoIt3Wrapper_Res_Fileversion=0.0.0.15
#AutoIt3Wrapper_Res_FileVersion_AutoIncrement=y
#AutoIt3Wrapper_Au3Check_Stop_OnWarning=y
#AutoIt3Wrapper_Run_Tidy=y
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
;根据汉字查询拼音


#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

#include <String.au3>
#include <Array.au3>


#Region ### START Koda GUI section ### Form=C:\Documents and Settings\Administrator\桌面\汉字转换拼音.kxf
$Form1 = GUICreate("姓名汉字转换拼音", 362, 118, 296, 182)
GUISetIcon("D:\009.ico")
$GroupBox1 = GUICtrlCreateGroup("", 8, 8, 257, 65)
$Input = GUICtrlCreateInput("", 104, 32, 137, 21)
$Label1 = GUICtrlCreateLabel("输入姓名汉字", 24, 32, 76, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("确定(&O)", 280, 24, 75, 25, 0)
$Button2 = GUICtrlCreateButton("取消(&C)", 280, 80, 75, 25, 0)
$Label2 = GUICtrlCreateLabel("拼音:", 16, 88, 40, 17)
$Label3 = GUICtrlCreateLabel("", 56, 88, 212, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Button1
                        If GUICtrlRead($Input) = '' Then
                                MsgBox(48, "错误", "请输入汉字")
                        Else
                                $hz = StringSplit(GUICtrlRead($Input), "")
                                $py = ""
                                For $i = 1 To $hz[0] Step 2
                                        $py &= _hz2py($hz[$i] & $hz[$i + 1])
                                Next
                                GUICtrlSetData($Label3, $py)
                        EndIf
                       
                Case $Button2
                        Exit
        EndSwitch
WEnd

Func _hz2py($Input)
        $mystr = 'a,20319,ai,20317,an,20304,ang,20295,ao,20292,ba,20283,bai,20265,ban,20257,bang,20242,bao,20230,bei,20051,ben,20036,beng,20032,bi,20026,bian,20002,biao,19990,bie,19986,bin,19982,bing,19976,bo,19805,bu,19784,ca,19775,cai,19774,can,19763,cang,19756,cao,19751,ce,19746,ceng,19741,cha,19739,chai,19728,chan,19725,chang,19715,chao,19540,che,19531,chen,19525,cheng,19515,chi,19500,chong,19484,chou,19479,chu,19467,chuai,19289,chuan,19288,chuang,19281,chui,19275,chun,19270,chuo,19263,ci,19261,cong,19249,cou,19243,cu,19242,cuan,19238,cui,19235,cun,19227,cuo,19224,da,19218,dai,19212,dan,19038,dang,19023,dao,19018,de,19006,deng,19003,di,18996,dian,18977,diao,18961,die,18952,ding,18783,diu,18774,dong,18773,dou,18763,du,18756,duan,18741,dui,18735,dun,18731,duo,18722,e,18710,en,18697,er,18696,fa,18526,fan,18518,fang,18501,fei,18490,fen,18478,feng,18463,fo,18448,fou,18447,fu,18446,ga,18239,gai,18237,gan,18231,gang,18220,gao,18211,ge,18201,gei,18184,gen,18183,geng,18181,gong,18012,gou,17997,gu,17988,gua,17970,guai,17964,guan,17961,guang,17950,gui,17947,gun,17931,guo,17928,ha,17922,hai,17759,han,17752,hang,17733,hao,17730,he,17721,hei,17703,hen,17701,heng,17697,hong,17692,hou,17683,hu,17676,hua,17496,huai,17487,huan,17482,huang,17468,hui,17454,hun,17433,huo,17427,ji,17417,jia,17202,jian,17185,jiang,16983,jiao,16970,jie,16942,jin,16915,jing,16733,jiong,16708,jiu,16706,ju,16689,juan,16664,jue,16657,jun,16647,ka,16474,kai,16470,kan,16465,kang,16459,kao,16452,ke,16448,ken,16433,keng,16429,kong,16427,kou,16423,ku,16419,kua,16412,kuai,16407,kuan,16403,kuang,16401,kui,16393,kun,16220,kuo,16216,la,16212,lai,16205,lan,16202,lang,16187,lao,16180,le,16171,lei,16169,leng,16158,li,16155,lia,15959,lian,15958,liang,15944,liao,15933,lie,15920,lin,15915,ling,15903,liu,15889,long,15878,lou,15707,lu,15701,lv,15681,luan,15667,lue,15661,lun,15659,luo,15652,ma,15640,mai,15631,man,15625,mang,15454,mao,15448,me,15436,mei,15435,men,15419,meng,15416,mi,15408,mian,15394,miao,15385,mie,15377,min,15375,ming,15369,miu,15363,mo,15362,mou,15183,mu,15180,na,15165,nai,15158,nan,15153,nang,15150,nao,15149,ne,15144,nei,15143,nen,15141,neng,15140,ni,15139,nian,15128,niang,15121,niao,15119,nie,15117,nin,15110,ning,15109,niu,14941,nong,14937,nu,14933,nv,14930,nuan,14929,nue,14928,nuo,14926,o,14922,ou,14921,pa,14914,pai,14908,pan,14902,pang,14894,pao,14889,pei,14882,pen,14873,peng,14871,pi,14857,pian,14678,piao,14674,pie,14670,pin,14668,ping,14663,po,14654,pu,14645,qi,14630,qia,14594,qian,14429,qiang,14407,qiao,14399,qie,14384,qin,14379,qing,14368,qiong,14355,qiu,14353,qu,14345,quan,14170,que,14159,qun,14151,ran,14149,rang,14145,rao,14140,re,14137,ren,14135,reng,14125,ri,14123,rong,14122,rou,14112,ru,14109,ruan,14099,rui,14097,run,14094,ruo,14092,sa,14090,sai,14087,san,14083,sang,13917,sao,13914,se,13910,sen,13907,seng,13906,sha,13905,shai,13896,shan,13894,shang,13878,shao,13870,she,13859,shen,13847,sheng,13831,shi,13658,shou,13611,shu,13601,shua,13406,shuai,13404,shuan,13400,shuang,13398,shui,13395,shun,13391,shuo,13387,si,13383,song,13367,sou,13359,su,13356,suan,13343,sui,13340,sun,13329,suo,13326,ta,13318,tai,13147,tan,13138,tang,13120,tao,13107,te,13096,teng,13095,ti,13091,tian,13076,tiao,13068,tie,13063,ting,13060,tong,12888,tou,12875,tu,12871,tuan,12860,tui,12858,tun,12852,tuo,12849,wa,12838,wai,12831,wan,12829,wang,12812,wei,12802,wen,12607,weng,12597,wo,12594,wu,12585,xi,12556,xia,12359,xian,12346,xiang,12320,xiao,12300,xie,12120,xin,12099,xing,12089,xiong,12074,xiu,12067,xu,12058,xuan,12039,xue,11867,xun,11861,ya,11847,yan,11831,yang,11798,yao,11781,ye,11604,yi,11589,yin,11536,ying,11358,yo,11340,yong,11339,you,11324,yu,11303,yuan,11097,yue,11077,yun,11067,za,11055,zai,11052,zan,11045,zang,11041,zao,11038,ze,11024,zei,11020,zen,11019,zeng,11018,zha,11014,zhai,10838,zhan,10832,zhang,10815,zhao,10800,zhe,10790,zhen,10780,zheng,10764,zhi,10587,zhong,10544,zhou,10533,zhu,10519,zhua,10331,zhuai,10329,zhuan,10328,zhuang,10322,zhui,10315,zhun,10309,zhuo,10307,zi,10296,zong,10281,zou,10274,zu,10270,zuan,10262,zui,10260,zun,10256,zuo,10254'
        $dict = StringSplit($mystr, ",");字典数组
        $hz_input = StringSplit($Input, '');汉字作为2个字节
        If $hz_input[0] = 1 Then
                $num = Asc($Input)

        Else
                $num = Abs((256 * Asc($hz_input[1]) + Asc($hz_input[2])) - 256 * 256)
        EndIf
;~         MsgBox(0, '$num值', $num)
        $out = '';输出拼音字串
        Switch $num
                Case $num > 0 And $num < 160
                        $out = $Input
                Case $num > 20319 Or $num < 10247
                        $out = '?'
                Case Else
                        For $i = $dict[0] To 1 Step - 1
                                If $num <= Number($dict[$i]) Then
                                        $out = $dict[$i - 1]
                                        ExitLoop
                                EndIf
                        Next
        EndSwitch


        Return $out
EndFunc   ;==>_hz2py[/au3]
 楼主| 发表于 2009-3-4 23:35:13 | 显示全部楼层
谢谢楼上的。我想,用正则表达式过滤掉非中文字符,应该就可以了吧。
 楼主| 发表于 2009-3-5 00:09:50 | 显示全部楼层

增加了转换的选项

[au3]
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_Version=beta
#AutoIt3Wrapper_Outfile=C:\Documents and Settings\Administrator\桌面\a.exe
#AutoIt3Wrapper_UseAnsi=y
#AutoIt3Wrapper_Res_Fileversion=0.0.0.26
#AutoIt3Wrapper_Res_FileVersion_AutoIncrement=y
#AutoIt3Wrapper_Au3Check_Stop_OnWarning=y
#AutoIt3Wrapper_Run_Tidy=y
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
;根据汉字查询拼音


#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

#include <String.au3>
#include <Array.au3>

$opt = 0
#Region ### START Koda GUI section ### Form=c:\documents and settings\administrator\桌面\汉字转换拼音.kxf
$Form1 = GUICreate("姓名汉字转换拼音", 364, 205, 296, 182)
GUISetIcon("D:\009.ico")
$GroupBox1 = GUICtrlCreateGroup("", 8, 8, 257, 137)
$Input = GUICtrlCreateInput("", 104, 32, 137, 21)
$Label1 = GUICtrlCreateLabel("输入姓名汉字", 24, 32, 76, 17)
$Radio1 = GUICtrlCreateRadio("全部小写的全拼", 24, 72, 113, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
$Radio2 = GUICtrlCreateRadio("首字母大写的全拼", 24, 96, 113, 17)
$Radio3 = GUICtrlCreateRadio("只返回大写首字母", 24, 120, 113, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("确定(&O)", 280, 24, 75, 25, 0)
$Button2 = GUICtrlCreateButton("取消(&C)", 280, 80, 75, 25, 0)
$Label2 = GUICtrlCreateLabel("拼音:", 48, 168, 40, 17)
$Input1 = GUICtrlCreateInput("", 96, 168, 249, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

                Case $Button1
                        $hz = GUICtrlRead($Input)
                        If GUICtrlRead($Input) = '' Then
                                MsgBox(48, "错误", "请输入汉字")
                        Else
                                $hz = StringSplit(GUICtrlRead($Input), "")
                                $py = ""
                                For $i = 1 To $hz[0] Step 2
                                        $py &= _hz2py($hz[$i] & $hz[$i + 1], $opt) & ' '
                                Next
                                GUICtrlSetData($Input1, $py)
                        EndIf
                Case $Button2
                        Exit

                Case $Radio1
                        $opt = 0
                Case $Radio2
                        $opt = 1
                Case $Radio3
                        $opt = 2
        EndSwitch
WEnd

Func _hz2py($Input, $opt);opt=0,全部小写,opt=1首字符大写,opt=2只返回大写首字符
        $mystr = 'a,20319,ai,20317,an,20304,ang,20295,ao,20292,ba,20283,bai,20265,ban,20257,bang,20242,bao,20230,bei,20051,ben,20036,beng,20032,bi,20026,bian,20002,biao,19990,bie,19986,bin,19982,bing,19976,bo,19805,bu,19784,ca,19775,cai,19774,can,19763,cang,19756,cao,19751,ce,19746,ceng,19741,cha,19739,chai,19728,chan,19725,chang,19715,chao,19540,che,19531,chen,19525,cheng,19515,chi,19500,chong,19484,chou,19479,chu,19467,chuai,19289,chuan,19288,chuang,19281,chui,19275,chun,19270,chuo,19263,ci,19261,cong,19249,cou,19243,cu,19242,cuan,19238,cui,19235,cun,19227,cuo,19224,da,19218,dai,19212,dan,19038,dang,19023,dao,19018,de,19006,deng,19003,di,18996,dian,18977,diao,18961,die,18952,ding,18783,diu,18774,dong,18773,dou,18763,du,18756,duan,18741,dui,18735,dun,18731,duo,18722,e,18710,en,18697,er,18696,fa,18526,fan,18518,fang,18501,fei,18490,fen,18478,feng,18463,fo,18448,fou,18447,fu,18446,ga,18239,gai,18237,gan,18231,gang,18220,gao,18211,ge,18201,gei,18184,gen,18183,geng,18181,gong,18012,gou,17997,gu,17988,gua,17970,guai,17964,guan,17961,guang,17950,gui,17947,gun,17931,guo,17928,ha,17922,hai,17759,han,17752,hang,17733,hao,17730,he,17721,hei,17703,hen,17701,heng,17697,hong,17692,hou,17683,hu,17676,hua,17496,huai,17487,huan,17482,huang,17468,hui,17454,hun,17433,huo,17427,ji,17417,jia,17202,jian,17185,jiang,16983,jiao,16970,jie,16942,jin,16915,jing,16733,jiong,16708,jiu,16706,ju,16689,juan,16664,jue,16657,jun,16647,ka,16474,kai,16470,kan,16465,kang,16459,kao,16452,ke,16448,ken,16433,keng,16429,kong,16427,kou,16423,ku,16419,kua,16412,kuai,16407,kuan,16403,kuang,16401,kui,16393,kun,16220,kuo,16216,la,16212,lai,16205,lan,16202,lang,16187,lao,16180,le,16171,lei,16169,leng,16158,li,16155,lia,15959,lian,15958,liang,15944,liao,15933,lie,15920,lin,15915,ling,15903,liu,15889,long,15878,lou,15707,lu,15701,lv,15681,luan,15667,lue,15661,lun,15659,luo,15652,ma,15640,mai,15631,man,15625,mang,15454,mao,15448,me,15436,mei,15435,men,15419,meng,15416,mi,15408,mian,15394,miao,15385,mie,15377,min,15375,ming,15369,miu,15363,mo,15362,mou,15183,mu,15180,na,15165,nai,15158,nan,15153,nang,15150,nao,15149,ne,15144,nei,15143,nen,15141,neng,15140,ni,15139,nian,15128,niang,15121,niao,15119,nie,15117,nin,15110,ning,15109,niu,14941,nong,14937,nu,14933,nv,14930,nuan,14929,nue,14928,nuo,14926,o,14922,ou,14921,pa,14914,pai,14908,pan,14902,pang,14894,pao,14889,pei,14882,pen,14873,peng,14871,pi,14857,pian,14678,piao,14674,pie,14670,pin,14668,ping,14663,po,14654,pu,14645,qi,14630,qia,14594,qian,14429,qiang,14407,qiao,14399,qie,14384,qin,14379,qing,14368,qiong,14355,qiu,14353,qu,14345,quan,14170,que,14159,qun,14151,ran,14149,rang,14145,rao,14140,re,14137,ren,14135,reng,14125,ri,14123,rong,14122,rou,14112,ru,14109,ruan,14099,rui,14097,run,14094,ruo,14092,sa,14090,sai,14087,san,14083,sang,13917,sao,13914,se,13910,sen,13907,seng,13906,sha,13905,shai,13896,shan,13894,shang,13878,shao,13870,she,13859,shen,13847,sheng,13831,shi,13658,shou,13611,shu,13601,shua,13406,shuai,13404,shuan,13400,shuang,13398,shui,13395,shun,13391,shuo,13387,si,13383,song,13367,sou,13359,su,13356,suan,13343,sui,13340,sun,13329,suo,13326,ta,13318,tai,13147,tan,13138,tang,13120,tao,13107,te,13096,teng,13095,ti,13091,tian,13076,tiao,13068,tie,13063,ting,13060,tong,12888,tou,12875,tu,12871,tuan,12860,tui,12858,tun,12852,tuo,12849,wa,12838,wai,12831,wan,12829,wang,12812,wei,12802,wen,12607,weng,12597,wo,12594,wu,12585,xi,12556,xia,12359,xian,12346,xiang,12320,xiao,12300,xie,12120,xin,12099,xing,12089,xiong,12074,xiu,12067,xu,12058,xuan,12039,xue,11867,xun,11861,ya,11847,yan,11831,yang,11798,yao,11781,ye,11604,yi,11589,yin,11536,ying,11358,yo,11340,yong,11339,you,11324,yu,11303,yuan,11097,yue,11077,yun,11067,za,11055,zai,11052,zan,11045,zang,11041,zao,11038,ze,11024,zei,11020,zen,11019,zeng,11018,zha,11014,zhai,10838,zhan,10832,zhang,10815,zhao,10800,zhe,10790,zhen,10780,zheng,10764,zhi,10587,zhong,10544,zhou,10533,zhu,10519,zhua,10331,zhuai,10329,zhuan,10328,zhuang,10322,zhui,10315,zhun,10309,zhuo,10307,zi,10296,zong,10281,zou,10274,zu,10270,zuan,10262,zui,10260,zun,10256,zuo,10254'
        $dict = StringSplit($mystr, ",");字典数组
        $hz_input = StringSplit($Input, '');汉字作为2个字节
        If $hz_input[0] = 1 Then
                $num = Asc($Input)

        Else
                $num = Abs((256 * Asc($hz_input[1]) + Asc($hz_input[2])) - 256 * 256)

        EndIf
        $out = '';输出拼音字串
        Switch $num
                Case $num > 0 And $num < 160
                        $out = $Input
                Case $num > 20319 Or $num < 10247
                        $out = '?'
                Case Else
                        For $i = $dict[0] To 1 Step -1
                                If $num <= Number($dict[$i]) Then
                                        $out = $dict[$i - 1]
                                        ExitLoop
                                EndIf
                        Next
                        ;转换拼音大小写
                        $tmp = StringSplit($out, '')
                        Switch $opt
                                Case 0
                                Case 1
                                        $tmp[1] = Chr(Asc($tmp[1]) - 32)
                                        $out = _ArrayToString($tmp, '', 1, $tmp[0])
                                Case 2
                                        $tmp[1] = Chr(Asc($tmp[1]) - 32)
                                        $out = $tmp[1]
                        EndSwitch
        EndSwitch
        Return $out
EndFunc   ;==>_hz2py
[/au3]
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 23:39 , Processed in 0.072815 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表