读书人

关于Label和Edit组件的字符串转换的有

发布时间: 2013-01-18 10:22:42 作者: rapoo

关于Label和Edit组件的字符串转换的问题。高手请围观!
小弟现在想写一个小程序,我不打算建立数据库,主窗口直接从各个子窗口读取相应数据,我想的是从子窗口Label->Caption或者Edit->Text中读出相应的字符串,然后运用StrToInt()函数对其进行转换后,参与主窗口后面的运算。
现在问题出现了,运用StrToInt()函数转换后的数据好像不能直接参与运算,提示有错误!(编译的时候没有错误但是运行时出现了提示框,具体信息如下所述)

对话框中的错误提示:
project ×××.exe raised exception class EConvertError with message '''is not a valid integer value'.process stopped .Use Step or Run to continue.



[解决办法]
不是所有字符串都能转int 看错误的提示很显然你取到的值是空
[解决办法]
如果字符串不是一个合法的整数,在转换时就会抛出EConvertError一场,一般这样处理
try {
nValue = Edit1->Text.ToInt();
} catch ( EConvertError &e ) {
ShowMessage("请输入有效的数值");
Edit1->SetFocus();
return false;
}
.......
[解决办法]

引用:
引用:不是所有字符串都能转int 看错误的提示很显然你取到的值是空



好像是有点这样的情况,那应该怎么来处理这个事???按2楼这位兄弟的说法,如果想获得转换后的Int数值,是不是还得在通过纠错语句再获得一次???呵呵呵


当然得先纠错啊,不然你说 "bdy45acy2" 应该转成什么值呢?
[解决办法]
StrToInt的时候,如果字符串不是一个正确的数字,那么转换就会抛出异常。可以用StrToIntDef指定一个默认的数值。

读书人网 >C++ Builder

热点推荐