鱼C论坛

 找回密码
 立即注册
查看: 3117|回复: 4

关于Edit组件内容判断的问题

[复制链接]
发表于 2013-2-3 22:52:23 | 显示全部楼层 |阅读模式
1鱼币
请问,Edit组件里的字符串怎么判断他是一个数组而不是字符。比如要计算23和24相加结果,但是如果输入ee就会报错。怎么排除这种异常,对他进行处理。

最佳答案

查看完整内容

好像是放到数组里面对应到字符串,然后进行判断。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-3 22:52:24 | 显示全部楼层
好像是放到数组里面对应到字符串,然后进行判断。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-2-4 02:04:34 | 显示全部楼层
本帖最后由 メ㊣逆ご帅☆ 于 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进行处理的
具体看这里
1.jpg
如图,这是Delphi一个数字的字符串
2.jpg
用工具转化下发现字符串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都汉化了的话。。。那么应该就是 按键按下 这个事件了



评分

参与人数 1荣誉 +2 鱼币 +6 收起 理由
永远前进的人 + 2 + 6 感谢楼主耐心指导

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-2-4 09:46:50 | 显示全部楼层

但是他好像是在Delphi里面啊。以后看清哦

评分

参与人数 1鱼币 +1 收起 理由
メ㊣逆ご帅☆ + 1 感谢。没看到板块(+﹏+)~

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-2-4 22:32:48 | 显示全部楼层
永远前进的人 发表于 2013-2-3 22:52
好像是放到数组里面对应到字符串,然后进行判断。

一句点明不错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 23:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表