FoxPro/Visual FoxPro - condicion ("1" = "1") es falsa?

   
Vista:

condicion ("1" = "1") es falsa?

Publicado por DALSOM (609 intervenciones) el 05/06/2011 19:41:04
Hola, a ver si alguien me explica si este bug fue arreglado, o solo es mi fox?

Tengo una variable con un dato de cadena de caracteres, digamos que se llama var1.
Y tengo la siguiente condicion :

var1 = [10 libras]
If (Var1 = []) var2 = [vacia] else var2 = [llena]

Cual pienso yo seria el valor que debe llegar a var2? Pues pense debia ser [llena],
pero no! mi depurador dice que es [vacia].

esto tambien lo probe asi > (var1="")
(var1 = '') y nada, sigue igual.

Le di la vuelta por el len de la cadena, funciona, pero lo de arriba como se arregla? Tambien me paso lo mismo en la funcion DecToStr, pero con valores numericos en donde preguntaba >

var1 > 0, y el depurador, siendo var1 0.0 me decia que era True.

Alguna idea? o es que mi depurador humano esta muy avanzado para mi pc?
Que me dicen?
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

condicion (

Publicado por es_binario (757 intervenciones) el 06/06/2011 05:36:21
En Visual Foxpro 8 o superior seria asi:


1
2
3
4
5
6
7
var1 = [10 libras]
var2 = EVL(var1,"vacia")
? var2
var1 = ""
 
var2 = EVL(var1,"vacia")
? var2


la primera vez me da: 10 libras
y la segunda vacia
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

condicion (

Publicado por Juan Manuel Cruz juanmcruz@hotmail.com (508 intervenciones) el 06/06/2011 10:41:30
Lee el HELP de Visual Fox, con respecto al comando:

SET EXACT OFF/on

Porque es lo que te está pasando, al querer comparar contra cadena vacía. Tan fácil como poner un:

SET EXACT ON

y tu comparación se comportará como deseas.

O sin importar el valor de SET EXACT hacer siempre una comparación forzosa, con el operador igual por duplicado.

if var1== ""
var2=[vacia]
else
var2=[llena]
endif

Esto como cultura general, finalmente la solución que ES_BINARIO propone es mejor, para qué "re-inventar la pólvora" si ya tienes funciones que hacen el trabajo por tí.
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