Quitar Ceros de la derecha. Error al compilar
Posted: Wed Dec 05, 2007 7:40 pm
Antonio
La funcion que te adjunto devuelve la cadena pasada quitando los ceros de la derecha.
Por ejemplo: cQuitaCeros("123.456000"), devuelve "123.456".
Compilada con xHarbour funciona correctamente pero si la compilo con Harbour_CE obtengo el siguiente error de compilación y desconocemos el motivo.
¿Que estoy haciendo mal?
Te agradeceria me lanzaras un cable.
Saludos
Toni Sales
********* ERROR DE COMPILACION *******************
error C2223: left of '->item' must point struct/union
********* LA FUNCION ******************************
#include "hbapi.h"
HB_FUNC ( CQUITACEROS )
{
PHB_ITEM pItem;
char *szText;
int i;
int n;
char * szResult;
pItem = hb_param(1, HB_IT_STRING);
if( pItem )
{
szText = pItem->item.asString.value;
i = (int) pItem->item.asString.length -1 ;
n = 0;
while( i >= 0)
{
if(szText != '0')
{
n = ( n != 0 ? n : i );
}
i--;
}
if( n != 0)
{
szResult = ( char * ) hb_xgrab( n+1 );
memcpy( szResult, szText , n+1);
hb_retclenAdopt( szResult, n+1 );
return;
}
}
hb_ret();
return;
}
La funcion que te adjunto devuelve la cadena pasada quitando los ceros de la derecha.
Por ejemplo: cQuitaCeros("123.456000"), devuelve "123.456".
Compilada con xHarbour funciona correctamente pero si la compilo con Harbour_CE obtengo el siguiente error de compilación y desconocemos el motivo.
¿Que estoy haciendo mal?
Te agradeceria me lanzaras un cable.
Saludos
Toni Sales
********* ERROR DE COMPILACION *******************
error C2223: left of '->item' must point struct/union
********* LA FUNCION ******************************
#include "hbapi.h"
HB_FUNC ( CQUITACEROS )
{
PHB_ITEM pItem;
char *szText;
int i;
int n;
char * szResult;
pItem = hb_param(1, HB_IT_STRING);
if( pItem )
{
szText = pItem->item.asString.value;
i = (int) pItem->item.asString.length -1 ;
n = 0;
while( i >= 0)
{
if(szText != '0')
{
n = ( n != 0 ? n : i );
}
i--;
}
if( n != 0)
{
szResult = ( char * ) hb_xgrab( n+1 );
memcpy( szResult, szText , n+1);
hb_retclenAdopt( szResult, n+1 );
return;
}
}
hb_ret();
return;
}