funcion evaluate

524 views
Skip to first unread message

marcelo lopez

unread,
Apr 12, 2012, 8:20:02 PM4/12/12
to publicesvfoxpro
hola a todos:
 
Estuve mirando como funciona la funcion evaluate .
miré este ejemplo :
 

Cad = int(10.002)

EVALUATE (Cad) = 10.

 

por lo que veo funciona parecido al operador &.

el tema es que cuando pongo ? evaluate ( cad ) por l de comando para que muestre 10 , me sale que hay un error de sintaxis .

alguien me puede explicar porque ?

gracias

Walter R. Ojeda Valiente

unread,
Apr 12, 2012, 9:16:58 PM4/12/12
to publice...@googlegroups.com
Porque no está rodeado de comillas. Si escribes:

CAD = "INT(10.002)"

? EVALUATE(CAD)

Te funcionará correctamente.

Saludos.

Walter.




Date: Thu, 12 Apr 2012 21:20:02 -0300
Subject: [vfp] funcion evaluate
From: marceloe...@gmail.com
To: publice...@googlegroups.com

Victor Espina

unread,
Apr 12, 2012, 9:17:27 PM4/12/12
to publice...@googlegroups.com
Cad = "INT(10.0002)"
?EVALUATE(Cad)

En muchos casos EVALUATE() y & funcionan de forma similar aunque tengo entendido que EVALUATE() es sensiblemente mas rapido que &.

Una ventaja de EVALUATE() sobre & es que se puede usar para devolver valores:

nResult = EVAL(cad)

por otro lado, & permite acceder a miembros de  objetos de forma dinamica:

cMiProp = "Caption"
?_Screen.&cMiProp

y muchos otros usos mas que EVALUATE() no puede igualar.  Yo uso AMBOS y TAMBIEN la macrosustitucion con parentesis, como en el caso de:

cCursor = "Q1"
SELECT * FROM mitabla INTO (cCursor)

Saludos

Victor Espina

Walter R. Ojeda Valiente

unread,
Apr 12, 2012, 9:23:26 PM4/12/12
to publice...@googlegroups.com
Es cierto, la función EVALUATE() es más rápida que la macrosustitución &, y por lo tanto debería ser elegida cuando se puede usar a cualquiera de ellos.

Pero hay casos en que EVALUATE() no se puede usar y para esos casos evidentemente que hay que usar &.

Saludos.

Walter.





Date: Thu, 12 Apr 2012 18:17:27 -0700
From: vesp...@gmail.com
To: publice...@googlegroups.com
Subject: [vfp] Re: funcion evaluate
Reply all
Reply to author
Forward
0 new messages