Diferencias FWH 9.03 y FWH 10.09 => msginfo( uCharToVal( ".T

Post Reply
FiveWiDi
Posts: 1243
Joined: Mon Oct 10, 2005 2:38 pm
Has thanked: 4 times
Been thanked: 4 times

Diferencias FWH 9.03 y FWH 10.09 => msginfo( uCharToVal( ".T

Post by FiveWiDi »

Antonio,

Por favor, podría probar este código:

msginfo( uCharToVal( ".T.", .T. ) )

En la versión de FWH 9.03 se mostraba .T. y con la versión 10.09 se muestra .F., es correcto? Debe ser así?

Gracias, me voy a dormir, mañana te leo.
Un Saludo
Carlos G.

FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
User avatar
Daniel Garcia-Gil
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita
Contact:

Re: Diferencias FWH 9.03 y FWH 10.09 => msginfo( uCharToVal( ".T

Post by Daniel Garcia-Gil »

FiveWidi


efectivamente la funcion cambio a partir de la version 9.05
http://forums.fivetechsupport.com/viewtopic.php?p=82088#p82088

Mejorado: uCharToVal( cText, [cType] ). También se ha cambiado del módulo WQout.prg a Valblank.Prg

Si no se proporciona cType o es nulo, la función determina el tipo de dato apropiado y convierte el valor. Si el segundo parámetro es por referencia, el tipo determinado por la función se almacena en el segundo parámetro.
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
FiveWiDi
Posts: 1243
Joined: Mon Oct 10, 2005 2:38 pm
Has thanked: 4 times
Been thanked: 4 times

Re: Diferencias FWH 9.03 y FWH 10.09 => msginfo( uCharToVal( ".T

Post by FiveWiDi »

Daniel Garcia-Gil wrote:FiveWidi


efectivamente la funcion cambio a partir de la version 9.05
http://forums.fivetechsupport.com/viewtopic.php?p=82088#p82088

Mejorado: uCharToVal( cText, [cType] ). También se ha cambiado del módulo WQout.prg a Valblank.Prg

Si no se proporciona cType o es nulo, la función determina el tipo de dato apropiado y convierte el valor. Si el segundo parámetro es por referencia, el tipo determinado por la función se almacena en el segundo parámetro.


Si, si estamos de acuerdo, pero entiendo que lo que sucede es que no convierte bien el valor que recibe.
Esto seria correcto?

Local nNumero := 0
uCharToVal( "123.56", nNumero )
y que msginfo( nNumero ) mostrara por pantalla 345.89, yo creo que NO sería correcto porque está cambiando el valor recibido además de su tipo.

Entonces si:

Local lvalor := .T.
uCharToVal( ".T.", lValor )
y que MsgInfo( lValor ) mostrara por pantalla .F. tampoco sería correcto por la misma razón que el ejemplo anterior, CAMBIA SU VALOR.

Gracias.
Un Saludo
Carlos G.

FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
User avatar
Daniel Garcia-Gil
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita
Contact:

Re: Diferencias FWH 9.03 y FWH 10.09 => msginfo( uCharToVal( ".T

Post by Daniel Garcia-Gil »

Fivewidi

porl o que leo en la descripcion de la funcion, el 2do parametro es el tipo de dato ( "N", "L", "D", "C" ) y no el valor, el uso de eseparametro puede ser omitido o usarlo en forma de referencia

los valores ".T." y ".F." no son permitidos
puedes usar para valores .T. = "T", "TRUE", "YES", "VERDADERO", "VERO", "WAHR", "VRAI", "VERDADEIRO"
para valores .F. = "F", "FALSE", "NO", "FALSO", "FALSCH", "FAUX"


esto funciona perfectamenrte

Code: Select all | Expand


#include "fivewin.ch"


function main
   local dVal := Date()
   local nVal := 12346.78
   local lVal := .T.
   local cRef
   
   ? uCharToVal( cValToChar( dVal ) ), uCharToVal( cValToChar( dVal ), "D" ), uCharToVal( cValToChar( dVal ), @cRef ), cRef
   cRef := NIL
   ? uCharToVal( cValToChar( nVal ) ), uCharToVal( cValToChar( nVal ), "N" ), uCharToVal( cValToChar( nVal ), @cRef ), cRef
   cRef := NIL
   ? uCharToVal( "TRUE" ), uCharToVal( "T", "L" ), uCharToVal( cValToChar( lVal ), @cRef ), cRef
   
RETURN NIL  
 
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
FiveWiDi
Posts: 1243
Joined: Mon Oct 10, 2005 2:38 pm
Has thanked: 4 times
Been thanked: 4 times

Re: Diferencias FWH 9.03 y FWH 10.09 => msginfo( uCharToVal( ".T

Post by FiveWiDi »

Daniel Garcia-Gil wrote:Fivewidi

porl o que leo en la descripcion de la funcion, el 2do parametro es el tipo de dato ( "N", "L", "D", "C" ) y no el valor, el uso de eseparametro puede ser omitido o usarlo en forma de referencia

los valores ".T." y ".F." no son permitidos
puedes usar para valores .T. = "T", "TRUE", "YES", "VERDADERO", "VERO", "WAHR", "VRAI", "VERDADEIRO"
para valores .F. = "F", "FALSE", "NO", "FALSO", "FALSCH", "FAUX"


esto funciona perfectamenrte


Es cierto, funciona perfectamente, lo cual no quiere decir que haga lo que se espera de ello.

Sigo pensando que no está bien y que en la línia donde dices:
puedes usar para valores .T. = "T", "TRUE", "YES", "VERDADERO", "VERO", "WAHR", "VRAI", "VERDADEIRO"
debería decir:
puedes usar para valores .T. = ".T.", "T", "TRUE", "YES", "VERDADERO", "VERO", "WAHR", "VRAI", "VERDADEIRO"

Fíjate en esto, hasta ahora uCharToVal() era la inversa de cValToChar(), si alguien ha decidido que ya no es así, pues es cierto funciona perfectamente pero no es compatible con lo anterior.

Seguro que el impacto es mínimo, lleva varios meses así y no he visto mensajes al respecto, pero a mi modo de ver alguien se dejó ... ".T.".

Por el mismo razonamiento, cualquier día CToD() deja de ser la inversa de DToC().

Un saludo
Un Saludo
Carlos G.

FiveWin 24.02 + Harbour 3.2.0dev (r2403071241), BCC 7.7 Windows 10
User avatar
Daniel Garcia-Gil
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita
Contact:

Re: Diferencias FWH 9.03 y FWH 10.09 => msginfo( uCharToVal( ".T

Post by Daniel Garcia-Gil »

Fivewidi

Entiendo lo que comentas

el codigo de la funcion esta en source/function/valblank.prg

puedes modificarla a tu antojo, por ejemplo añadir los valores que necesitas

Code: Select all | Expand

 
   local cTrue    := "|.T.|T|TRUE|YES|VERDADERO|VERO|WAHR|VRAI|VERDADEIRO|"
   local cFalse   := "|.F.|F|FALSE|NO|FALSO|FALSCH|FAUX|"
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
Post Reply