La letra Ñ

Post Reply
jfafive
Posts: 396
Joined: Tue Mar 18, 2008 9:41 pm
Location: Marbella

La letra Ñ

Post by jfafive »

Hola Antonio,
>
> Te escribo porquer llevo un tiempo con un rpblema que no he conseguido resolver.
>
> Se trata de una búsqueda que hago en un fichero word cargado con memoread así:
>
> cTxt := lower( MemoRead( cFile ) )
> cPal := lower( cPal ) // cPal es = a "CAÑONES"
>
> At( cPal, cTxt ) // Me devuelve 0, es decir, no la encuentra.
>
> Si hago un MsgInfo de cPal, me muestra "caÑones".
>
> ¿porqué no convierte la Ñ?
jfafive
Posts: 396
Joined: Tue Mar 18, 2008 9:41 pm
Location: Marbella

Respuesta:

Post by jfafive »

Hola Javier,

Comprueba que tengas este código al comienzo de tu aplicación:

Tienes que añadir estas líneas al comienzo de tu PRG principal:

REQUEST HB_Lang_ES
REQUEST HB_CODEPAGE_ESWIN

HB_LangSelect("ES") // Para mensajes, fechas, etc..
HB_SetCodePage("ESWIN") // Para ordenación, requiere CodePage.lib

saludos,
JOSEMAR
Posts: 73
Joined: Thu Dec 06, 2007 4:51 pm
Location: J.D.COVARRUBIAS,VER.,MEXICO

Post by JOSEMAR »

ME OCURRE ALGO SIMILAR CAPTURA LA Ñ PERO LA GRABA CON OTRO CARACTER YA PROBE CON HB_LANG_ES Y NADA
CON HB_CODPAGE_ESWIN ME HACE FALTA LA CODPAGE.LIB
SALUDOS, JOSE MARQUEZ
JUAN DIAZ COVARRUBIAS,VERACRUZ ,MEXICO
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Jose,

Comprueba si tienes CODEPAGE.lib (para xHarbour) ó HBCPAGE.lib (para Harbour).
regards, saludos

Antonio Linares
www.fivetechsoft.com
JOSEMAR
Posts: 73
Joined: Thu Dec 06, 2007 4:51 pm
Location: J.D.COVARRUBIAS,VER.,MEXICO

Post by JOSEMAR »

ANTONIO,

NO TENGO LA HBCPAGE.LIB.

A LA MEJOR ES LA VERSION ESTOY TODAVIA CON LA 2.4
SALUDOS, JOSE MARQUEZ
JUAN DIAZ COVARRUBIAS,VERACRUZ ,MEXICO
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Si, en la versión 2.4 la librería en Harbour se llamaba codepage.lib

Recientemente es cuando se le ha cambiado el nombre, junto a otras librerias
regards, saludos

Antonio Linares
www.fivetechsoft.com
JOSEMAR
Posts: 73
Joined: Thu Dec 06, 2007 4:51 pm
Location: J.D.COVARRUBIAS,VER.,MEXICO

Post by JOSEMAR »

ANTONIO

PERO TAMPOCO TENGO LA CODPAGE.LIB
SALUDOS, JOSE MARQUEZ
JUAN DIAZ COVARRUBIAS,VERACRUZ ,MEXICO
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Jose,

El nombre correcto es CODEPAGE.lib

De todas formas, el mejor consejo es que useis una versión más actualizada porque la versión 2.4 es ya bastante antigua, incluyendo la versión de Harbour/xHarbour que usa.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Patricio Avalos Aguirre
Posts: 1028
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile
Contact:

Post by Patricio Avalos Aguirre »

hola

Alguien podria enviar el resultado de estas dos lineas
ya que a mi aunque tenga codepage.lib igual no cambia las Ñ

Code: Select all

	alert( lower( "NIÑA" ) )
	alert( upper( "niña" ) )
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
quique
Posts: 408
Joined: Sun Aug 13, 2006 5:38 am
Contact:

Post by quique »

Puedes probar con estas funciones de fivewin

alert( ansiLower( "NIÑA" ) )
alert( ansiUpper( "niña" ) )
Saludos
Quique
User avatar
Patricio Avalos Aguirre
Posts: 1028
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile
Contact:

Post by Patricio Avalos Aguirre »

Gracias, funciona muy bien

en conclusion la funcion lower() de xharbour estaría mala?
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
quique
Posts: 408
Joined: Sun Aug 13, 2006 5:38 am
Contact:

Post by quique »

no creo, hace lo mismo que la función de clipper, hasta donde tengo entendido, lo que comentan los compañeros son para, una traducir los mensajes que muestra (x)harbour, por ejemplo, los mensajes de error y nombres de dias y meses, la otra, para el ordenamiento en los índices.
Saludos
Quique
User avatar
Patricio Avalos Aguirre
Posts: 1028
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile
Contact:

Post by Patricio Avalos Aguirre »

Estimados

Al parecer la funcion AnsiLower tiene un compartimineto extraño, cambia el valor de la variable?

Code: Select all

local cVar := "NIÑA"

alert( Lower( cVar ) ) // no cambia la Ñ a ñ == !Error
alert( cVar ) // deja la variable como corresponde, bien

alert( ansilower( cVar ) ) // cambia la Ñ a ñ == > BIEN
alert( cVar )  // cambia la variable a niña ==> MUY MAL..

:-(
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
quique
Posts: 408
Joined: Sun Aug 13, 2006 5:38 am
Contact:

Post by quique »

cierto, ahora que lo mencionas, creo que si, ya tiene algunos años que no la utilizo, pero la respuesta correcta a esa pregunta nos la podría dar antonio, porque es una función de fivewin, pero lo que puedes hacer es

cPalabra := "niña"
:
:
cTemp := cPalabra
alert( ansiUpper( cTemp ) ) // Cambia el valor de la variable, pero solo la utilizas para mostrar el nuevo valor
alert( cPalabra )


o en su caso, si lo que quieres es asignarle el nuevo valor a otra variable, lo puedes hacer al revez

cPalabra := "niña"
cUpper := cPalabra
ansiUpper( cUpper )
Saludos
Quique
Post Reply