如何强制将字符串强制转换为整型数(50分)

  • 主题发起人 主题发起人 tiandown
  • 开始时间 开始时间
T

tiandown

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用strtoint(edit1.text)如果我输入的数据是"aa12"则会弹出说"aa12"是一个不规范的整型数据,但我输入的是"12"则一切正常.
而我想的是我无论输入的是什么数据都能转换成整型或确无法转换时就转换成一个指定的数
 
是不是只有strtointdef这个方法?
 
try
aa:=strtoint(edit1.text);
except
aa:=123;
end;
 
用TRY不就行了吗?
 
楼主有trim了么?
 
用maskedit,只能输入整数,不能用edit, 然后用strtoint
 
可以在EDIT的Keypress里阻止用户输入非数字字符啊。然后转换不就行了?
procedure TForm1.Edit1KeyPress(Sender: TObject
var Key: Char);
begin
if not (key in ['0'..'9']) then
begin
Application.MessageBox('请输入数字!','提示',MB_ICONWARNING);
key:=char(0);
edit1.SetFocus;
end;
end;

或者用异常捕获来写
try
iNum:=strtoint(edit1.text);
except
iNum:=num;
end;
 
内置函数strtointdef(string,defaultvalue)最好了
 
TryStrToInt()
 
strtointdef(Edit1.Text,0)
 
转换前先去掉非数字字符
s:= '';
for i:= 1 to length(edit1.text) do
if edit1.text in ['0'..'9']) then s:= s+edit1.text;
if s<>'' then StrToInt(s);
 
多人接受答案了。
 
后退
顶部