Fórum Verificar se o numero e string ou Integer #293881
31/08/2005
0
1) Em uma tabela tenho dois campos, um Integer e outro String
2) Para localizar o registro na tabela utilizo um campo Edit, no campo Integer utilizo somente números, no campo String utilizo números e letras, Tem como eu verificar no campo edit se o que foi digitado e somente número ou se contem letras também. ?
desde já grato.
Sdph
Curtir tópico
+ 0Post mais votado
31/08/2005
Use a função StrToIntDef
function StrToIntDef(const S: string; Default: Integer): Integer
Caso ela falhe em converter a string para inteiro, ela devolve o ´Default´. Veja um exemplo:
if StrToIntDef(Edit1.Text, 0) = 0 //Tem letras else //é número
José Henrique
Gostei + 2
Mais Posts
31/08/2005
Massuda
(1) tenta converter para integer...
var N: Integer; ... try N := StrToInt(Edit1.Text); except // Edit1 contem um texto que não é um número end; ...
(2) checa se a string contem apenas dígitos...
function EhNumero(S: string): Boolean; var I: Integer; begin Result := True; for I := 1 to Lenght(S) do begin if not (S[I] in [´0´..´9´]) then begin Result := False; Break; end; end; end; // ex: if EhNumero(Edit1.Text) then...
Gostei + 0
27/01/2021
Victor
Use a função StrToIntDef
function StrToIntDef(const S: string; Default: Integer): Integer
Caso ela falhe em converter a string para inteiro, ela devolve o ´Default´. Veja um exemplo:
[code:1:1876bb3bb3]
if StrToIntDef(Edit1.Text, 0) = 0
//Tem letras
else
//é número
[/code:1:1876bb3bb3]
Gostei + 0
27/01/2021
Victor
Por exemplo, comparar igual a 0, blz! Vc vê se ele conseguiu converter, mas o parâmetro 0 após o edit1.text, não entendi
Gostei + 0
28/01/2021
Emerson Nascimento
StrToIntDef('13', 5) -- resultado 13, porque '13' pode pode ser convertido em inteiro
StrToIntDef('EMERSON', 5) -- resultado 5, porque 'EMERSON' não pode ser convertido em inteiro.
Em StrToIntDef(Edit1.Text, 0) se o conteúdo de Edit1.Text não puder ser convertido num inteiro, o retorno será 0.
Por isto a função não serve para identificar se o valor é inteiro, visto que ela sempre retornará um valor inteiro.
Por exemplo:
Edit1.Text := '0';
if StrToIntDef(Edit1.Text, 0) = 0
ShowMessage('Tem letras')
else
ShowMessage('É número');o correto é usar o try...except, como apresentado por Massuda:
try
StrToInt(Edit1.Text);
except
// Edit1 contem um valor que não é um número
ShowMessage('Não é um número');
end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)