PICTURE "@!"

Postby Antonio Linares » Mon Mar 03, 2008 11:25 pm

Mejor aún, vamos a definirla en lenguaje C y usando el mismo nombre que usa el API de Windows:

CharUpper( cStr | nValue ) --> cUpperStr

Se puede usar indistintamente como CharUpper( Asc( "ñ" ) ) ó como CharUpper( "ñ" ). El API de Windows permite estos dos comportamientos.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42118
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Manuel Valdenebro » Tue Mar 04, 2008 6:17 am

Antonio Linares wrote:Visto que xHarbour no lo hace bien.


Como comenté en un mensaje anterior, a mi me funciona perfectamente y no creía que el error estuviera en la TGET.

En todos mis programas, al principio, incluyo estos mandatos de xHarbour:

REQUEST HB_LANG_ES
HB_LangSelect("ES")
REQUEST HB_CODEPAGE_ESWIN
HB_SetCodePage("ESWIN")

Acabo de comprobar, que si comento (anulo) las dos últimas, se produce el error y no funciona el PICTURE "@!" cuando pulso "ñ".

¿A los que les da el error con xHarbour, están incluyendo estas claúsulas y las librerias correspondientes?.
Un saludo

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Postby Antonio Linares » Tue Mar 04, 2008 8:04 am

Manuel,

Posiblemente se debe a que usas un build antiguo de xHarbour (0.99.61) mientras que la versión actual de xHarbour es la 1.1.0.

Nosotros lo hemos probado como tu comentas (revisa mis mensajes anteriores) y falla.

Mientras se arregle ó no, lo más seguro es usar el API de Windows.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42118
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Antonio Linares » Tue Mar 04, 2008 8:28 am

Aqui está la función en C, para asi obtener la máxima rapidez y las dos posibilidades que ofrece el API de Windows:
Code: Select all  Expand view  RUN
CLIPPER CHARUPPER( PARAMS )
{
   unsigned char uc[ 2 ];
   
   if( ISNUM( 1 ) )
   {   
      uc[ 0 ] = _parnl( 1 );
      uc[ 1 ] = 0;
     
      _retc( CharUpper( ( LPSTR ) uc ) );
   }   
   else   
      _retc( CharUpper( _parc( 1 ) ) );
}     
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42118
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Andrés González » Tue Mar 04, 2008 2:32 pm

Ahora perfecto sin tener que hacer mas comparaciones de las necesarias. Un 10 a la solución del problema.
Saludos

Andrés González desde Mallorca
User avatar
Andrés González
 
Posts: 629
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Previous

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 93 guests