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

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

Postby goosfancito » Fri Jan 27, 2006 8: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.


Code: Select all  Expand view  RUN
#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/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Postby Antonio Linares » 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
User avatar
Antonio Linares
Site Admin
 
Posts: 42125
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby goosfancito » Sat Jan 28, 2006 2: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/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Postby Antonio Linares » Sat Jan 28, 2006 7: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:

Code: Select all  Expand view  RUN
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
Antonio Linares
Site Admin
 
Posts: 42125
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby goosfancito » Wed Feb 01, 2006 4: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/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 33 guests