Al sumar dos chr( ) y uno es 0 no lo hace bien.

Post Reply
User avatar
goosfancito
Posts: 1392
Joined: Fri Oct 07, 2005 7:08 pm

Al sumar dos chr( ) y uno es 0 no lo hace bien.

Post by goosfancito »

Grupo,

Miren por favor este código, pasa algo raro, cuando queremos sumar dos Chr( a ) + chr( b ) y a tiene un valor 0 CERO...
Espero sus comentarios.

Code: Select all

#include "fivewin.ch"

//------------------------------------------------------------------------------

// Prueba a realizar:
// 1) al cValor1 darle el valor "02"
// 2) al cValor2 darle el valor "02"
// Se obtiene lo de prueba1.jpg

//segunda prueba:
// 1) a cValor1 darle "02"
// 2) a cValor2 darle "00"
// se obtine respuesta prueba2.jpg

// ACA BIENE EL TEMA, cuando a cValor1 se le da "00" no muestra
// lo que se calcula en LOCAL cCaracter2:= Chr( nNumerico1 ) + Chr( nNumerico2 )
// ver prueba prueba3.jpg

//------------------------------------------------------------------------------

FUNCTION main()
   LOCAL cValor1:= "00"
   LOCAL nNumerico1:= hextodec( cValor1 )
   LOCAL cCaracter1:= Chr( nNumerico1 )

   LOCAL cValor2:= "02"
   LOCAL nNumerico2:= hextodec( cValor2 )
   LOCAL cCaracter2:= Chr( nNumerico1 ) + Chr( nNumerico2 )

   ?  "cValor1" ,cValor1, "hextodec( cValor1 ) ", nNumerico1, "Chr( nNumerico1)", cCaracter1,;
      "cValor2", cValor2, "hextodec( cValor2 ) ", nNumerico2, "Chr( nNumerico1 ) + Chr( nNumerico2 )", cCaracter2



   RETURN ( nil )

//------------------------------------------------------------------------------

// HexaTodec(cString) es una funcion que hemos sacado de los examples de la
// carpeta del FW

FUNCTION HexaToDec(cString)
   local nNumber:=0,nX:=0
   local cNewString:=AllTrim(cString)

   local nLen:=Len(cNewString)

   FOR nX:=1 to nLen
      nNumber+=(At(SubStr(cNewString,nX,1),'0123456789ABCDEF')-1)*;
         (16**(nLen-nX))
   NEXT nX

   RETURN ( int( nNumber ) )

//------------------------------------------------------------------------------
Hay alguna forma de cargar las jpg sin poner la url.... ? asi mando las pantallas capturadas.
Un aporte chico hace grandes cambios.
Apoyemos al proyecto "Hogar pimpinela"
Bajate la aplicación (gratuita) y encuentra en ella toda la info de como podes colaborar.
GRACIAS!
https://play.google.com/store/apps/deta ... .acomprar
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Gustavo,

Ten en cuenta que si intentas visualizar una cadena que contenga algún cero en ella, Windows lo toma como final de cadena y solo verás hasta el caracter anterior.

Para poner imágenes usa http://www.imageshack.us por ejemplo y copia aqui el url que te da.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
goosfancito
Posts: 1392
Joined: Fri Oct 07, 2005 7:08 pm

Post by goosfancito »

Antonio,

Y que solucion podrias darme con este tema, alguna idea? porque necesito que una cadena de tipo string contenga esos ceros, ya que estoy programando una plaqueta que necesita que se le envie estos ceros.
Un aporte chico hace grandes cambios.
Apoyemos al proyecto "Hogar pimpinela"
Bajate la aplicación (gratuita) y encuentra en ella toda la info de como podes colaborar.
GRACIAS!
https://play.google.com/store/apps/deta ... .acomprar
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Gustavo,

La cadena contiene esos ceros, lo que ocurre es que si usas un MsgInfo() para visualizarlo solo verás hasta el caracter anterior al primer cero.

Haz esta prueba y verás que los ceros están:

Code: Select all

function Main()

   local cText := "Hola" + Chr( 0 ) + Chr( 0 ) + "Adios"

   MsgInfo( Len( cText ) ) // debe mostrar 11
   
   MsgInfo( cText ) // Sólo se verá "Hola"
      
   MsgInfo( SubStr( cText, 7 ) ) // Verás "Adios"
            
return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
goosfancito
Posts: 1392
Joined: Fri Oct 07, 2005 7:08 pm

Post by goosfancito »

Probado y anda, asi que voy a darle para adelante con el proyecto, tenia miedo que el chr ( 0 ) no exista.

Gracias.
Un aporte chico hace grandes cambios.
Apoyemos al proyecto "Hogar pimpinela"
Bajate la aplicación (gratuita) y encuentra en ella toda la info de como podes colaborar.
GRACIAS!
https://play.google.com/store/apps/deta ... .acomprar
Post Reply