FoxPro/Visual FoxPro - como validar si es numerico?

 
Vista:

como validar si es numerico?

Publicado por andrew (30 intervenciones) el 20/11/2006 21:14:23
Hola, tengo una rutina que extrae datos de un archivo de texto, uso el GETWORDNUM(), mi problema es que necesito extraer un dato en valor numerico, pero no siempre es numerico, asi que debo saber cuando lo es para extraerlo o si no para no extraerlo. Utilice un IF valor >= 0 THEN pero al parecer no funciona como quisiera, porque cuando no es un valor numerico me devuelve 0

Aguna idea?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:como validar si es numerico?

Publicado por Roman Suazo (2723 intervenciones) el 21/11/2006 02:17:45
Pureba usando el TYPE() o VARTYPE() segun sea tu caso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como validar si es numerico?

Publicado por andrew (30 intervenciones) el 21/11/2006 03:06:52
Creo que por ahi esta la respuesta, mira, este es el pedazo de codigo que quiero hacer funcionar:

FOR r = 1 TO 3
myrec = ALLTRIM(GETWORDNUM(LCString,r,CHR(9)))
NEXT r

En este caso, tengo una linea de texto separada por tabs (chr(9)), el numero de columna por asi decirlo, donde esta el dato que quiero, que es numerico, es 3, pero a veces en las columnas 1 y/o 2 hay datos y a veces no, entonces, cuando no hay datos en esas columnas, el dato que quiero me lo regresa cuando le pido la columna 1, entonces, cuando uso el TYPE o VARTYPE, como estoy usando GETWORDNUM me imagino, me regresa aunque sea un numero pero en formato STRING, como le puedo hacer?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como validar si es numerico?

Publicado por Luis Osorio (27 intervenciones) el 23/11/2006 17:22:34
Intenta con ISDIGIT(). Esta funcion devuelve .T. (Verdadero) si el parametro que le introdujiste es un caracter entre '0' Y '9' o bien, si el primer caracter de un string es un numero. Esta funcion la puedes usar en conjunto con VAL() la cual te convierte un string que represente un numero a un numero de verdad.

Espero que esto te ayude.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:como validar si es numerico?

Publicado por Ernesto Hernandez (4623 intervenciones) el 23/11/2006 20:17:22
ISDIGIT() es para encontrar un numero en un cadena de caracteres no ????
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como validar si es numerico?

Publicado por andrew (30 intervenciones) el 24/11/2006 05:12:05
Ya lo logre! solo use VAL() y me quebre un poco la cabeza, pero funciono....... de todas formas voy a hacer pruebas con ISDIGIT() para ver como funciona....... gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como validar si es numerico?

Publicado por Luis Osorio (27 intervenciones) el 24/11/2006 22:19:57
Te dice si el 1er. caracter de una cadena es numerico, pero trabajando con un caracter individual te dice si ese caracter representa un numero o no.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como validar si es numerico?

Publicado por Gustavo Coutiño (1 intervención) el 23/02/2016 22:01:50
usa el comando VARTYPE(datovariableocampo)
ejemplo if VARTYPE(datovariableocampo)
no es numero
endif
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar