`

把汉字置换成拼音的VBS函数

 
阅读更多
'================================
'汉字置换成拼音
'================================
Function PinYin(HZ As String)
    Dim PinMa As String
    Dim MyPinMa As Variant
    Dim Temp As Integer, i As Integer, j As Integer
    PinMa = "a,20319,ai,20317,an,20304,ang,20295,ao,20292,"
    PinMa = PinMa & "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,"
    PinMa = PinMa & "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,"
    PinMa = PinMa & "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,"
    PinMa = PinMa & "e,18710,en,18697,er,18696,"
    PinMa = PinMa & "fa,18526,fan,18518,fang,18501,fei,18490,fen,18478,feng,18463,fo,18448,fou,18447,fu,18446,"
    PinMa = PinMa & "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,"
    PinMa = PinMa & "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,"
    PinMa = PinMa & "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,"
    PinMa = PinMa & "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,"
    PinMa = PinMa & "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,"
    PinMa = PinMa & "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,"
    PinMa = PinMa & "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,"
    PinMa = PinMa & "o,14922,ou,14921,"
    PinMa = PinMa & "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,"
    PinMa = PinMa & "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,"
    PinMa = PinMa & "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,"
    PinMa = PinMa & "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,"
    PinMa = PinMa & "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,"
    PinMa = PinMa & "wa,12838,wai,12831,wan,12829,wang,12812,wei,12802,wen,12607,weng,12597,wo,12594,wu,12585,"
    PinMa = PinMa & "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,"
    PinMa = PinMa & "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,"
    PinMa = PinMa & "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"
    MyPinMa = Split(PinMa, ",")
    For i = 1 To Len(HZ)
    Temp = Asc(Mid(HZ, i, 1))
        If Temp < 0 Then
          Temp = Abs(Temp)
          For j = 791 To 1 Step -2
              If Temp <= Val(MyPinMa(j)) Then
                  PinYin = PinYin & MyPinMa(j - 1) & " "
                  Exit For
            End If
          Next
        End If
    Next
    PinYin = Trim(PinYin)
End Function

'=================================
'汉字置换成拼音首字母
'=================================
Function PinYinShort(hzpy As String)
    Dim hzstring As String, pystring As String
    Dim hzpysum As Integer, hzi As Integer, hzpyhex As Integer
    hzstring = Trim(hzpy)
    hzpysum = Len(Trim(hzstring))
    pystring = ""
    For hzi = 1 To hzpysum
        hzpyhex = "&H" + Hex(Asc(Mid(hzstring, hzi, 1)))
        Select Case hzpyhex
          Case &HB0A1 To &HB0C4: pystring = pystring + "A"
          Case &HB0C5 To &HB2C0: pystring = pystring + "B"
          Case &HB2C1 To &HB4ED: pystring = pystring + "C"
          Case &HB4EE To &HB6E9: pystring = pystring + "D"
          Case &HB6EA To &HB7A1: pystring = pystring + "E"
          Case &HB7A2 To &HB8C0: pystring = pystring + "F"
          Case &HB8C1 To &HB9FD: pystring = pystring + "G"
          Case &HB9FE To &HBBF6: pystring = pystring + "H"
          Case &HBBF7 To &HBFA5: pystring = pystring + "J"
          Case &HBFA6 To &HC0AB: pystring = pystring + "K"
          Case &HC0AC To &HC2E7: pystring = pystring + "L"
          Case &HC2E8 To &HC4C2: pystring = pystring + "M"
          Case &HC4C3 To &HC5B5: pystring = pystring + "N"
          Case &HC5B6 To &HC5BD: pystring = pystring + "O"
          Case &HC5BE To &HC6D9: pystring = pystring + "P"
          Case &HC6DA To &HC8BA: pystring = pystring + "Q"
          Case &HC8BB To &HC8F5: pystring = pystring + "R"
          Case &HC8F6 To &HCBF9: pystring = pystring + "S"
          Case &HCBFA To &HCDD9: pystring = pystring + "T"
          Case &HEDC5: pystring = pystring + "T"
          Case &HCDDA To &HCEF3: pystring = pystring + "W"
          Case &HCEF4 To &HD1B8: pystring = pystring + "X"
          Case &HD1B9 To &HD4D0: pystring = pystring + "Y"
          Case &HD4D1 To &HD7F9: pystring = pystring + "Z"
          Case Else
            pystring = pystring + Mid(hzstring, hzi, 1)
        End Select
    Next
    PinYinShort = pystring

End Function

 

分享到:
评论

相关推荐

    DES加密算法的E置换P置换

    P置换也使用了一个预定义的置换表,将48位的中间结果重新排列成32位,这个过程中同样没有涉及到任何算术运算,只是简单地按照P置换表的顺序重新组合比特。P置换的作用是进一步增加数据的混乱程度,使得加密后的密文...

    拼音转换类(将任意中文转换为拼音,个人改造,支持utf8,gbk编码,程序自动识别)

    拼音转换类(将任意中文转换为拼音,个人改造,支持utf8,gbk编码,程序自动识别

    clock页面置换算法

    简单的clock页面置换算法 采用CLOCK置换算法仿真请求分页系统 1、设计目的:用高级语言编写和调试一个内存分配程序,加深对内存分配算法的理解。 2、设计要求: 1) 实现请求分页存储管理方式的页面置换算法:...

    最佳置换OPT页面置换算法

    "最佳置换算法"(Optimal Page Replacement Algorithm,简称OPT),是理论上的最优页面置换算法,它的目标是在未来产生最少的缺页率。虽然在实际系统中由于预测未来的困难而难以实现,但理解其原理对于设计和分析...

    单表置换密码的C++代码实现

    - **`setZhiHuan(char ZhiHuanBiao[], char fanZhiHuanBiao[])`**:设置置换表函数,根据提供的密钥生成正向和反向置换表。 ##### 3.3 置换表生成 - **正向置换表**(`ZhiHuanBiao`):用于加密操作,根据密钥生成...

    页面置换算法的模拟实现及命中率对比

    1、首先用随机数生成函数产生一个“指令将要访问的地址序列”,然后将地址序列变换 成相应的页地址流(即页访问序列),再计算不同算法下的命中率。 2、通过随机数产生一个地址序列,共产生 400 条。其中 50%的地址...

    页面置换算法实验报告

    附录中给出了部分源代码,包括各个置换算法的函数定义和辅助功能,如打印输出、延迟函数等,展示了实际编程实现这些算法的过程。 总体而言,本实验旨在让学生通过实践理解不同页面置换算法的性能差异,并提高他们在...

    页面置换算法课程设计

    页面置换算法课程设计 本资源主要介绍了页面置换算法的模拟实现,包括OPT、LRU和FIFO三种算法的设计和实现。通过本课程设计,学生可以更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解...

    操作系统实验三页面置换算法实验报告.docx

    操作系统实验三页面置换算法实验报告 该实验报告主要介绍了操作系统中的页面置换算法实验,涵盖了 FIFO、Optimal 和 LRU 等三种常见的页面置换算法。实验报告中还提供了实验源码,展示了如何使用 C 语言实现这些...

    页面置换FIFO算法java

    页面置换FIFO算法java 页面置换FIFO算法是操作系统中的一种页面置换算法,用于解决内存分配和释放的问题。下面是该算法的详细介绍: 算法原理 FIFO(First-In-First-Out,先进先出)算法是最简单的一种页面置换...

    《操作系统》实验五:页面置换算法模拟.pdf

    - LRU页面置换函数:该函数需要记录每个页面的访问顺序,并将最久未被访问的页面替换出去。 7. 程序流程控制: 文件内容中提到了多个控制逻辑,如输入处理(scanf),循环控制(for, while等),条件判断(if-else...

    用c语言模拟先进先出页面置换算法

    - `void FIFO(int n, int m, int tempBlock[], int pageOrder[])`:这是FIFO算法的核心函数,它接收页面总数、物理块数量、物理块数组和页面访问顺序数组作为参数,并执行页面置换过程。 - **初始化**:首先初始化...

    页面置换算法模拟实验报告.pdf

    在实验中,我们首先设计了一个虚拟存储区和内存工作区,然后使用srand()函数和rand()函数生成指令序列,并将指令序列转换成相应的页地址流。接着,我们使用FIFO和LRU算法计算相应的命中率,并分析不同算法的性能。 ...

    LRU页面置换算法

    在 Lru 函数中,我们实现了 LRU 页面置换算法的核心逻辑。如果页面已在内存中,我们将该页面的时间设置为 0,并将其他页面的时间累加。如果页面不在内存中,我们将该页面调入内存,并将其时间设置为 0,然后将其他...

    页面置换,OPT,LUR

    在操作系统中,内存管理是核心任务之一,而页面置换算法是内存管理的重要组成部分。当我们运行的程序所需内存超过物理内存时,操作系统会采用虚拟内存技术,将部分内存内容换出到硬盘上的交换文件,腾出空间给其他更...

    DES置换表1

    4. **P置换**:P置换是一个固定的操作,它将E函数产生的48位数据重新排列成32位,这一步是将两个半块数据混合的关键步骤。 5. **选择置换1(PC-1)**:在密钥生成阶段,PC-1负责将原始64位密钥分成左右两部分,其中56...

    c语言编写的置换密码源代码

    - **读取置换规则**:接下来,用户需要输入置换规则,即每列在最终输出中的新位置。这些规则被存储在数组`a`中。 - **加密过程**:最核心的部分是加密循环。外层循环遍历每一行,内层循环负责按原始顺序读取字符,...

    先进先出FIFO页面置换算法

    3. **FIFO页面置换算法实现** (`FIFO`函数): - 使用了两个循环嵌套:外层循环遍历所有的页面引用;内层循环检查内存中是否存在相同的页面。 - 定义了一个`time[]`数组来记录每个物理块中页面驻留的时间,这有助于...

Global site tag (gtag.js) - Google Analytics