关于Edit组件内容判断的问题
请问,Edit组件里的字符串怎么判断他是一个数组而不是字符。比如要计算23和24相加结果,但是如果输入ee就会报错。怎么排除这种异常,对他进行处理。 好像是放到数组里面对应到字符串,然后进行判断。 本帖最后由 メ㊣逆ご帅☆ 于 2013-2-4 11:54 编辑数组是指输入不只一个,字符是指输入一个是吗?
如果用的是VC的话就用strlen取长度就知道了
记得包含string.h
计算23和24相加结果,但是如果输入ee就会报错。怎么排除这种异常,对他进行处理。
根据是Unicode或者Ascii进行判断
一般是Ascii
那么拿ascii举例
十进制 十六进制
48 │30 │0 │ │
49 │31 │1 │ │
50 │32 │2 │ │
51 │33 │3 │ │
52 │34 │4 │ │
53 │35 │5 │ │
54 │36 │6 │ │
55 │37 │7 │ │
56 │38 │8 │ │
57 │39 │9 │ │
这是字符0-9对应ascii的值
你只要取出字符,一个一个进行取出来放一个变量里,判断值是否在48到57之间,不在
那么不是数字,弹个提醒就可以
或者就是挂个键盘钩子实时判断是不是输入了字母或其他,有就提醒。
2013年2月4日11:50:36
抱歉,翻看了一个Delphi程序,发现Delphi一般默认就是采用ascii进行处理的
具体看这里
如图,这是Delphi一个数字的字符串
用工具转化下发现字符串32770 对应的 33h 32h 37h 37h 30h就是ascii
也就是说Delphi默认使用ascii
我顺便用OD找了一些其他字符串,发现都是ascii,那么应该可以用上面的方法了
另一个方法就是
你可以在代码中找到KeyPress 事件
我给你注释下好了
if not((key in ['0'..'9',#8]) ) then //如果按下的按钮 不 在0-9之间
begin
showmessage ('不是数字');//这句完全可以注释掉
key := #0;//应该是让它按下的那个键无效化,也就是输入不了不是数字的
end;
如果没有KeyPress事件的话
DELPHI应该是在那个Events事件中添加KeyPress事件就对了
如果连KeyPress都汉化了的话。。。那么应该就是 按键按下 这个事件了
メ㊣逆ご帅☆ 发表于 2013-2-4 02:04 static/image/common/back.gif
数组是指输入不只一个,字符是指输入一个是吗?
如果用的是VC的话就用strlen取长度就知道了
记得包含stri ...
但是他好像是在Delphi里面啊。以后看清哦 永远前进的人 发表于 2013-2-3 22:52 static/image/common/back.gif
好像是放到数组里面对应到字符串,然后进行判断。
一句点明不错
页:
[1]