Como poner un if con 2 condiciones

javier
31 de Diciembre del 2003
Necesito validar un campo, por ejemplo, este campo debe de ser mayor a 10 digitos pero menor de 16 digitos como hago para poner la doble condicion en el if, yo sabia que en otros lenguajes de programacion se hace con (&&) sin embargo en fox eso indica un comentario. Ojala y puedan resolverme esta duda, gracias.

Javier

Ken Torrealba
31 de Diciembre del 2003
Bueno ya los demas te ayudaron.

Sería de esta forma textual

IF digito > 10 AND digito < 16 THEN
* el código respectivo positivo
ELSE
* el codígo regañativo
ENDIF


Ken Torrealba
El Callao - Venezuela

emanuel
31 de Diciembre del 2003
bueno mira es muy fasil
asi como te lo contestaron arriba
define dos bariables una de 10 y una de 16
y aplica el if aber si asi te sale y no omitas el poder de else

bierkoffjv
31 de Diciembre del 2003
Tiene que tener en cuenta que el "or" o el "and" tiene dos formas de usarse:
if a.or.b separado por puntos
if a or b separado por espacios

Funciona igual, como mejor le guste.

fernando
31 de Diciembre del 2003
utiliza:
if BETWEEN(len(transform(valorcampo)), 10,16)

si estan entre los valores la expresión es verdadera


ferherpe
31 de Diciembre del 2003
Por lo que indicas entiendo que quieres establecer un if condicional el cual depende de 2 parametros, concretamente 10 y 16 (digitos). Ahora bien, no se si estas trabajando con foxpro 2x o VFP, de cualquier manera revisa este planteamiento:

parametro1=10
parametro2=16
longreal=len(alltrim(thisform.proyecto.value))
if &longreal=>parametro1 and &lonreal<=parametro2
instrs a realizar si las condiciones se cumplen
else
return .f.
endif

el codigo anterior es muy efectivo cuando deseas manejar 2 parametros, ya que por un lado obliga a cumplir la condicion de que por lo menos sea = que o mayor que parametro1 y al mismo tiempo sea < que o = a parametro2
Espero que esto resuelva tu problema.
Saludos

lechusg
31 de Diciembre del 2003
Los operadores lógicos son:
Y => AND
O => OR
No igual => ! , NOT

Espero que te sirva