|
<p><font face="Verdana">第四种方法:<br/>CLEAR<br/>?汉字缩写("银行")<br/>?hzsx("吕志杰")<br/>#DEFINE cPy "吖八嚓咑妸发旮铪讥讥咔垃呣拿讴趴七呥仨他哇哇哇夕丫匝咗"</font></p>
<p><font face="Verdana">FUNCTION 汉字缩写(汉字 as String)<br/>LOCAL cOut,cTmp<br/>cOut=""<br/>FOR m.i=1 TO LENC(m.汉字)<br/> m.cTmp='z'<br/> FOR m.j=1 TO 26<br/> IF SUBSTRC(m.汉字, m.i, 1) < SUBSTRC(cPy, m.j, 1)<br/> m.cTmp=CHR(95+m.j)<br/> EXIT<br/> ENDIF<br/> ENDFOR<br/> IF m.j=1&&如不是汉字, 则直接返回该字符<br/> m.cTmp=SUBSTRC(m.汉字, m.i, 1)<br/> ENDIF<br/> cOut=cOut+m.cTmp<br/>ENDFOR<br/>RETURN cOut<br/>ENDFUNC</font></p>
<p><font face="Verdana">第一种方法:<br/>hzstr="吕" &&或hzstr="吕志杰"<br/> local py,i,j,c <br/> private p0 <br/> p0="吖八嚓咑妸发旮铪讥讥咔垃呣拿讴趴七呥仨他哇哇哇夕丫匝咗" <br/> py="" <br/> for i=1 to lenc(hzstr) <br/> C='Z'<br/> for j=1 to 26 <br/> if substrc(hzstr,i,1)<substrc(p0,j,1) <br/> C=chr(95+j) <br/> EXIT <br/> endif <br/> next <br/> py=py+C <br/> next <br/>?py <br/>**第二种方法:<br/>?hz("吕")<br/>FUNCTION hz( cHanzi)<br/>cHanzi=Alltrim(cHanzi)<br/>cSpy=""<br/>For i=0 To Lenc(cHanzi)<br/> cDanzi=Substrc(cHanzi,i,1)<br/> Do Case<br/> Case Asc(cDanzi)>=Asc("啊") And Asc(cDanzi)<Asc("芭")&&A<br/> cSpy=cSpy+"A"<br/> Case Asc(cDanzi)>=Asc("芭") And Asc(cDanzi)<Asc("擦")&&B<br/> cSpy=cSpy+"B"<br/> Case Asc(cDanzi)>=Asc("擦") And Asc(cDanzi)<Asc("搭")&&C<br/> cSpy=cSpy+"C"<br/> Case Asc(cDanzi)>=Asc("搭") And Asc(cDanzi)<Asc("蛾")&&D<br/> cSpy=cSpy+"D"<br/> Case Asc(cDanzi)>=Asc("蛾") And Asc(cDanzi)<Asc("发")&&E<br/> cSpy=cSpy+"E"<br/> Case Asc(cDanzi)>=Asc("发") And Asc(cDanzi)<Asc("噶")&&F<br/> cSpy=cSpy+"F"<br/> Case Asc(cDanzi)>=Asc("噶") And Asc(cDanzi)<Asc("哈")&&G<br/> cSpy=cSpy+"G"<br/> Case Asc(cDanzi)>=Asc("哈") And Asc(cDanzi)<Asc("击")&&H<br/> cSpy=cSpy+"H"<br/> Case Asc(cDanzi)>=Asc("击") And Asc(cDanzi)<Asc("喀")&&J<br/> cSpy=cSpy+"J"<br/> Case Asc(cDanzi)>=Asc("喀") And Asc(cDanzi)<Asc("拉")&&K<br/> cSpy=cSpy+"K"<br/> Case Asc(cDanzi)>=Asc("拉") And Asc(cDanzi)<Asc("妈")&&L<br/> cSpy=cSpy+"L"<br/> Case Asc(cDanzi)>=Asc("妈") And Asc(cDanzi)<Asc("拿")&&M<br/> cSpy=cSpy+"M"<br/> Case Asc(cDanzi)>=Asc("拿") And Asc(cDanzi)<Asc("哦")&&N<br/> cSpy=cSpy+"N"<br/> Case Asc(cDanzi)>=Asc("哦") And Asc(cDanzi)<Asc("啪")&&O<br/> cSpy=cSpy+"O"<br/> Case Asc(cDanzi)>=Asc("啪") And Asc(cDanzi)<Asc("期")&&P<br/> cSpy=cSpy+"P"<br/> Case Asc(cDanzi)>=Asc("期") And Asc(cDanzi)<Asc("然")&&Q<br/> cSpy=cSpy+"Q"<br/> Case Asc(cDanzi)>=Asc("然") And Asc(cDanzi)<Asc("撒")&&R<br/> cSpy=cSpy+"R"<br/> Case Asc(cDanzi)>=Asc("撒") And Asc(cDanzi)<Asc("塌")&&S<br/> cSpy=cSpy+"S"<br/> Case Asc(cDanzi)>=Asc("塌") And Asc(cDanzi)<Asc("挖")&&T<br/> cSpy=cSpy+"T"<br/> Case Asc(cDanzi)>=Asc("挖") And Asc(cDanzi)<Asc("昔")&&W<br/> cSpy=cSpy+"W"<br/> Case Asc(cDanzi)>=Asc("昔") And Asc(cDanzi)<Asc("压")&&X<br/> cSpy=cSpy+"X"<br/> Case Asc(cDanzi)>=Asc("压") And Asc(cDanzi)<Asc("匝")&&Y<br/> cSpy=cSpy+"Y"<br/> Case Asc(cDanzi)>=Asc("匝")&&Z<br/> cSpy=cSpy+"Z"<br/> Otherwise<br/> cSpy=cSpy+cDanzi<br/> Endcase<br/>Endfor<br/>return cSpy<br/>ENDFUNC<br/>**第三种方法<br/>?hz("杰")<br/> FUNCTION hz( STRINGS)<br/> PRIVATE M.NAME , M.NAME1 , M.PINYIN<br/> M.NAME = ALLTRIM(STRINGS)<br/> M.NAME1 = ''<br/> FOR I = 1 TO 2<br/> TEMP = SUBSTR(M.NAME,I,1)<br/> IF ASC(TEMP) > 128<br/> M.NAME1 = M.NAME1 + TEMP<br/> ELSE <br/> RETURN LOWER(SUBSTR(M.NAME,1,1))<br/> RETURN <br/> ENDIF <br/> ENDFOR <br/> PINYINLEN = LEN(M.NAME1) / 2<br/> IF PINYINLEN > 8<br/> PINYINLEN = 8<br/> ENDIF <br/> M.PINYIN = ''<br/> FOR I = 1 TO PINYINLEN<br/> PTR = ;<br/> ASC(SUBSTR(M.NAME1,2 * (I - 1) + 1,1)) * 256 + ASC(SUBSTR(M.NAME1,2 * I,1))<br/> IF PTR >= 45217 AND PTR <= 45252<br/> TEMP = 'a'<br/> ENDIF <br/> IF PTR >= 45253 AND PTR <= 45760<br/> TEMP = 'b'<br/> ENDIF <br/> IF PTR >= 45761 AND PTR <= 46317<br/> TEMP = 'c'<br/> ENDIF <br/> IF PTR >= 46318 AND PTR <= 46825<br/> TEMP = 'd'<br/> ENDIF <br/> IF PTR >= 46826 AND PTR <= 47009<br/> TEMP = 'e'<br/> ENDIF <br/> IF PTR >= 47010 AND PTR <= 47296<br/> TEMP = 'f'<br/> ENDIF <br/> IF PTR >= 47297 AND PTR <= 47613<br/> TEMP = 'g'<br/> ENDIF <br/> IF PTR >= 47614 AND PTR <= 48118<br/> TEMP = 'h'<br/> ENDIF <br/> IF PTR >= 48119 AND PTR <= 49061<br/> TEMP = 'j'<br/> ENDIF <br/> IF PTR >= 49062 AND PTR <= 49323<br/> TEMP = 'k'<br/> ENDIF <br/> IF PTR >= 49324 AND PTR <= 49895<br/> TEMP = 'l'<br/> ENDIF <br/> IF PTR >= 49896 AND PTR <= 50370<br/> TEMP = 'm'<br/> ENDIF <br/> IF PTR >= 50371 AND PTR <= 50613<br/> TEMP = 'n'<br/> ENDIF <br/> IF PTR >= 50614 AND PTR <= 50621<br/> TEMP = 'o'<br/> ENDIF <br/> IF PTR >= 50622 AND PTR <= 50905<br/> TEMP = 'p'<br/> ENDIF <br/> IF PTR >= 50906 AND PTR <= 51386<br/> TEMP = 'q'<br/> ENDIF <br/> IF PTR >= 51387 AND PTR <= 51445<br/> TEMP = 'r'<br/> ENDIF <br/> IF PTR >= 51446 AND PTR <= 52217<br/> TEMP = 's'<br/> ENDIF <br/> IF PTR >= 52218 AND PTR <= 52697<br/> TEMP = 't'<br/> ENDIF <br/> IF PTR >= 52698 AND PTR <= 52979<br/> TEMP = 'w'<br/> ENDIF <br/> IF PTR >= 52980 AND PTR <= 53640<br/> TEMP = 'x'<br/> ENDIF <br/> IF PTR >= 53689 AND PTR <= 54480<br/> TEMP = 'y'<br/> ENDIF <br/> IF PTR >= 54481 AND PTR <= 55289<br/> TEMP = 'z'<br/> ENDIF <br/> IF TEMP <> '0'<br/> M.PINYIN = M.PINYIN + TEMP<br/> ENDIF <br/> ENDFOR <br/>RETURN M.PINYIN<br/>ENDFUNC</font></p> |
|