****hztop .prg ***** 用法是?hztop (“在地下早是”) 得的结果就是: zdxzs * ********* 以下是用到的几个子程序希望大家在工作中能用到****** ***** PARA CQ &&& & 把几个汉字变成拼音编码 CQ=ALLT RIM(CQ) ="" & &&& 存放拼音编码 DO WHILE . T. ******* ********** ****** *** ****** *** ********** ********** IF PDHZ (CQ) ELSE CQ=SUBS (CQ,2) * CC+ "" &&&& 这个要是加上的话可以把不是汉字变为空的对应出来 IF EM PTY(CQ) EXIT EN DI LOOP ENDI **** ********** ********** * ******* * 上面这段加上可以把不是汉字的去了** ********** ********** CC+HTOP(CQ ) CQ=SUBS (CQ,3) IF EMPTY(CQ) EXIT E NDI ENDD R CC ****** p PA RA HZ & &&& 判断是否为汉字 16到 87 为汉字 1到 87 为全角字符 HZ=SUB S(HZ,1,2) CChz=HTOQ( HZ) = VAL(SUBS(C Chz,1,2)) CCN>= 16.<=87 RE TU .T. EL SE RETU .F. ENDI ******hto PARA CQ &&& & 汉字变区位 IF TYPE("CQ") <>"C" RET U "" ENDI RETU NTOC( ASC(SUBS(C Q,1,1))-16 0)+NTOC(AS C(SUBS(CQ, 2,1))-160) ****hto PARA CQ &&& & 汉字变拼音 KKK K=VAL(HTOQ (CQ)) DO C ASE CASE INLIST(KKK K,5847,597 4,5991,625 4,6263,627 8,6325,642 7,6436,644 0,6441,651 4,6577,665 4,6658,695 9,7033,704 0,7081,720 8,7281,736 5,7451) RETU 'a' CASE KKKK >= .KKKK<=163 6 RETU " a" CASE I NLIST(KKKK ,7733,7907 ,7925,7945 ,8038,8190 ,8292,8616 ,8643,8701 ,8773,8786 ) RETU 'a' CASE INLIST(KKK K,5616,563 5,5650,573 4,5747,577 2,5781,578 7,5791,587 0,5873,589 1,5893,594 5,5946,594 8,5964,604 8,6056,607 4,6109,613 5,6141) RETU 'b' CASE KKKK >= .KKKK<=183 2 RETU " b" CASE I NLIST(KKKK ,6165,6177 ,6182,6221 ,6253,6267 ,6280,6318 ,6333,6334 ,6357,6403 ,6452,6517 ,6557,6589 ,6636,6656 ,6677,6703 ,6725,6774 ,6826) R ETU 'b' CASE INLIS T(KKKK,686 8,6908,691 7,6945,698 6,6994,702 7,7030,705 2,7063,708 4,7134,714 5,7221,722 8,7336,736 2,7375,741 9,7420,744 6,7458,749 4) RETU 'b' CASE INLIST(KK KK,7502,75 87,7609,76 13,7614,76 50,7652,76 65,7730,77 53,7760,77 71,7815,78 48,7851,78 57,7863,78 64,7873,79 28,7957,79 58,7980) RETU 'b' CASE INL IST(KKKK,7 985,8017,8 030,8039,8 103,8106,8 113,8125,8 149,8152,8 156,8157,8 159,8289,8 354,8357,8 375,8387,8 404,8416,8 418,8437,8 446) RET U 'b' CA SE INLIST( KKKK,8519, 8531,8532, 854
把汉字变为拼音的vfp原程序 来自淘豆网www.taodocs.com转载请标明出处.