首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

关于Label和Edit组件的字符串转换的有关问题。高手请围观

2013-01-18 
关于Label和Edit组件的字符串转换的问题。高手请围观!小弟现在想写一个小程序,我不打算建立数据库,主窗口直

关于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指定一个默认的数值。

热点排行