|
发表于 2020-3-24 19:30:01
|
显示全部楼层
设
标签控件为Label1
文本框控件为Text1
统计按钮控件为Command1
退出按钮控件为Command2
建一个Prg,取名为MyFunc.Prg,内容如:
FUNCTION StrIdentify
LPARAMETERS lcString
LOCAL lc中文,ln中文个数,lc英文,ln英文个数,lc空格,ln空格个数,lc数字,ln数字个数,lc其他字符,ln其他字符个数
STORE '' TO lc中文,lc英文,lc空格,lc数字,lc其他字符
STORE 0 TO ln中文个数,ln英文个数,ln空格个数,ln数字个数,ln其他字符个数
FOR I=1 TO LEN(lcString)
IF ISLEADBYTE(SUBSTR(lcString,I,1)) &&中文(中文及中文符号是双字节)
lc中文=lc中文+SUBSTR(lcString,I,2)
I=I+1
ln中文个数=ln中文个数+1
LOOP
ELSE
DO CASE
CASE UPPER(SUBSTR(lcString,I,1))$'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
lc英文=lc英文+SUBSTR(lcString,I,1)
ln英文个数=ln英文个数+1
CASE SUBSTR(lcString,I,1)=SPACE(1)
lc空格=lc空格+SUBSTR(lcString,I,1)
ln空格个数=ln空格个数+1
CASE SUBSTR(lcString,I,1)$'1234567890'
lc数字=lc数字+SUBSTR(lcString,I,1)
ln数字个数=ln数字个数+1
OTHERWISE
lc其他字符=lc其他字符+SUBSTR(lcString,I,1)
ln其他字符个数=ln其他字符个数+1
ENDCASE
ENDIF
ENDFOR
lcRetVal='中文(含中文符号):'+ALLTRIM(STR(ln中文个数))+'个。是:"'+lc中文+'"'
lcRetVal=lcRetVal+CHR(10)+' 英文字母:'+ALLTRIM(STR(ln英文个数))+'个。是:"'+lc英文+'"'
lcRetVal=lcRetVal+CHR(10)+' 空格:'+ALLTRIM(STR(ln空格个数))+'个。是:"'+lc空格+'"'
lcRetVal=lcRetVal+CHR(10)+' 数字:'+ALLTRIM(STR(ln数字个数))+'个。是:"'+lc数字+'"'
lcRetVal=lcRetVal+CHR(10)+' 其他字符:'+ALLTRIM(STR(ln其他字符个数))+'个。是:"'+lc其他字符+'"'
RETURN lcRetVal
ENDFUNC
然后
表单的Load事件:
Set Proc To MyFunc.Prg
表单的Unload事件:
Set Proc to
Command1的Click事件:
THISFORM.LABEL1.CAPTION=StrIdentify(THISFORM.TEXT1.VALUE)
MESSAGEBOX(StrIdentify(THISFORM.TEXT1.VALUE))
Command2的Click事件:
Thisform.Release
另外把Label1的宽和高设置大一些,这样才可以显示将结果显示全 |
|