FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Al sumar dos chr( ) y uno es 0 no lo hace bien.
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Al sumar dos chr( ) y uno es 0 no lo hace bien.
Posted: Fri Jan 27, 2006 08:52 PM
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.


#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.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Al sumar dos chr( ) y uno es 0 no lo hace bien.
Posted: Fri Jan 27, 2006 11:26 PM

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
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Al sumar dos chr( ) y uno es 0 no lo hace bien.
Posted: Sat Jan 28, 2006 02:08 AM

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.

FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Al sumar dos chr( ) y uno es 0 no lo hace bien.
Posted: Sat Jan 28, 2006 07:57 AM
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:

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
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Al sumar dos chr( ) y uno es 0 no lo hace bien.
Posted: Wed Feb 01, 2006 04:22 PM

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

Gracias.

FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/

Continue the discussion