Como saber se é numerico ou caracter

Delphi

04/08/2004

Como saber se é numerico ou caracter


Wolverine

Wolverine

Curtidas 0

Respostas

Inutaishou

Inutaishou

04/08/2004

If char In [0..9] Then
    Numerico
Else
    Caracter;


[]´s,


GOSTEI 0
Wolverine

Wolverine

04/08/2004

ñ deu certo

grafico:string;

if grafico in [0..9] then

[Error] uGrafico.pas(55): Incompatible types: ´String´ and ´Integer´


GOSTEI 0
Inutaishou

Inutaishou

04/08/2004

Mil desculpas... É assim:
Var grafico:string;
Begin
if grafico in [´0´..´9´] then
...
End;


PS: Essa rotina só funcionará se for um caracter somente, portanto, sugiro que seja feito assim:
Var grafico:string;
      I : Integer;
Begin
For I := 1 To Length( grafico ) Do
if grafico[i] in [´0´..´9´] then
...
End;


Dessa forma, ele verifica cada caracter da String...

[]´s,


GOSTEI 0
Wolverine

Wolverine

04/08/2004

eu quero comparar valores do BD
quero saber se o campo é de qual tipo
assim
dentro de um for

for i:=0 to DM.qrySZL010.Fields.Count do
    if DM.qrySZL010.Fields.Fields[i].FieldName is numerico
        x:=numerico
    else
        y:=caracter



GOSTEI 0
Inutaishou

Inutaishou

04/08/2004

Ah ta!!! Agora entendi... Faça assim:
for i:=0 to DM.qrySZL010.Fields.Count do
    if DM.qrySZL010.Fields.Fields[i].DataType = ftNumeric Then
        x:=numerico
    else
        y:=caracter


Veja no Help que tem diversos tipos que podem ser comparados com o DataType...

[]´s,


GOSTEI 0
Wolverine

Wolverine

04/08/2004

Amigo, muito obrigado, consegui

   for i:=0 to DM.qrySZL010.Fields.Count-1 do
if LowerCase(DM.qrySZL010.Fields.Fields[i].ClassName)  = ´tstringfield´ then
    ShowMessage(´string´)
else
    ShowMessage(´inteiro´)



GOSTEI 0
POSTAR