回 帖 发 新 帖 刷新版面

主题:编程小贴示:返回汉字串的拼音码

*****************************
*程序名称: ZBHZ2PY.PRG
*功    能: 返回汉字串的拼音码
*调用方式: PYM=ZBHZ2PY(HZ,LEN)
*编    制: (2001.09.18)
*****************************
PARAMETERS TMP_HZ,TMP_SLEN
PRIVATE ALL LIKE TMP_*
IF PARAMETERS()=0
   RETURN ""
ENDIF
TMP_FLAG=.T.
IF PARAMETERS()=1
   TMP_FLAG=.F.
ENDIF
TMP_HZ=STRTRAN(TMP_HZ," ")
TMP_LEN=LEN(TMP_HZ)
TMP_NHZ=""
FOR TMP_I=1 TO TMP_LEN
    TMP_DZ=SUBSTR(TMP_HZ,TMP_I,1)
    IF ASC(TMP_DZ)>160
       TMP_NHZ=TMP_NHZ+TMP_DZ
    ENDIF
ENDFOR
TMP_HZ=TMP_NHZ
TMP_HZS=LEN(TMP_HZ)/2
TMP_PY=""
FOR TMP_I=1 TO TMP_HZS
    TMP_DZ=SUBSTR(TMP_HZ,(TMP_I-1)*2+1,2)
    TMP_PY=TMP_PY+ZBDZ2PY(TMP_DZ)
ENDFOR
IF TMP_FLAG
   TMP_PY=PADR(TMP_PY,TMP_SLEN,"*")
ENDIF
RETURN TMP_PY

回复列表 (共14个回复)

11 楼

这段代码我也借用了,用来查找,效果很好。过去用编码来输入姓名。可事先还是要先查找代码。用这个就方便多了。输入“JLG”,高老师的姓名就查找出来了。什么都不用死记硬背了。

set filter to 'JLG'$HztoPy(姓名)
这句语句放在什么地方了?

12 楼

汉字转拼音的函数放在过程文件中,在程序运行时用:
set proc to (路径)过程文件名
后,就可在任何地方调用该函数了.

set filter to 'JLG'$HztoPy(姓名)
应放在用来输入字母的文本框的keypress事件中,当然,光有这一句还是不够的.

13 楼

[quote]
set filter to 'JLG'$HztoPy(姓名)
应放在用来输入字母的文本框的keypress事件中,当然,光有这一句还是不够的.[/quote]


那应该不会在表格中浏览数据时,反复执行该语句。不会在表格的有关事件中再去调用文本框的keypress事件?
水平有限,想不通。

14 楼

筛选条件是在KeyPress事件中设置的,但执行几次以及什么时候执行是系统的事情,我也没有根据说它一定被多次执行,但从操作的迟滞现象不由我不朝这个方向思考,所以,这应该是一个较复杂的或者说较有深度的问题。

我来回复

您尚未登录,请登录后再回复。点此登录或注册