In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Problemas con dbfs y acentos

Foro de Xailer profesional en español
Responder
Claudio C
Mensajes: 60
Registrado: Dom Sep 20, 2015 8:13 pm
Ubicación: Buenos Aires

Problemas con dbfs y acentos

Mensaje por Claudio C »

Estimados
Tengo una aplicacióin que comparte dbf con otra en xharbour ( xailer y harbour)
El problema lo tengo con los caracteres especiales ... acentos, etc.
En la imagen puede verse el problema. Arriba en xharbour y debajo en clipper

[img]codigos.jpg[/img]

En la dbf usa cdx y Collation= ESMWIN .

Ha intentado muchas cosas ( collation, languaje, codepage ) pero no logro que los dos sistemas me muestren lo mismo.
EN el que grabo se ve bien ( y en el otro no)
Agradeceria cualquier ayuda.
Claudio
Adjuntos
codigos.jpg
codigos.jpg (44.3 KiB) Visto 3747 veces
Avatar de Usuario
XeviCOMAS
Mensajes: 582
Registrado: Sab Mar 12, 2011 8:16 pm

Re: Problemas con dbfs y acentos

Mensaje por XeviCOMAS »

Claudio,

yo lo estoy utilizando así, con XailerHarbour

Código: Seleccionar todo

   //permite crear indices con el orden alfabético Español, respetando la ñ y la Ñ... tambè la Ç i la ç
   REQUEST HB_LANG_ES
   HB_LangSelect( "ES" )
   REQUEST HB_CODEPAGE_ESMWIN
   HB_CDPSelect( "ESMWIN" )
Un Saludo,
Xevi.
Claudio C
Mensajes: 60
Registrado: Dom Sep 20, 2015 8:13 pm
Ubicación: Buenos Aires

Re: Problemas con dbfs y acentos

Mensaje por Claudio C »

Gracias Xevi por ti respuesta pero no me funcionó.

Agregué lo que me dijiste en xHarbour y en Xailer...

//permite crear indices con el orden alfabético Español, respetando la ñ y la Ñ... tambè la Ç i la ç
REQUEST HB_LANG_ES
HB_LangSelect( "ES" )
REQUEST HB_CODEPAGE_ESMWIN
HB_CDPSelect( "ESMWIN" )

Pero no funciono...
codigos2.jpg
codigos2.jpg (32.28 KiB) Visto 3710 veces
Evidentemente el caracter que se guarda en la dbf es diferente cuando grabo la í desde un programa y desde otro.
Agradeceria una respuesta, pista, sugerencia...
Gracias por su tiempo
avitalini
Mensajes: 141
Registrado: Mié Ene 07, 2015 6:31 pm

Re: Problemas con dbfs y acentos

Mensaje por avitalini »

A ver si esto te puede ayudar, así lo tengo con 2 aplicaciones que hasta hace algunos años compartía con Clipper. FW y ahora Xailer

Código: Seleccionar todo

	REQUEST HB_CODEPAGE_ES850C
	REQUEST HB_CODEPAGE_ESMWIN
	
	HB_CDPSELECT( "ESMWIN" )
	HB_SETTERMCP( "ESMWIN" )
	
	SET(_SET_DBCODEPAGE, "ES850C" )
Saludos
Claudio C
Mensajes: 60
Registrado: Dom Sep 20, 2015 8:13 pm
Ubicación: Buenos Aires

Re: Problemas con dbfs y acentos (resuelto)

Mensaje por Claudio C »

El problema estaba en que la aplicación xHarbour grababa códigos ASCII y Xailer ANSI.
Como el requerimiento del proyecto exige la 'retrocompatibilidad' con los sistemas existentes ( que estan en xHarbour ) se resolvio 'grabar' las dbf como lo hacían éstas aplicaciones ( ASCII )

Al grabar:
if ValType( uVALOR ) = 'C' // El valor a grabar es un string -> convertirlo
Fieldput( i , hb_ansiTOoem( uVALOR ) ) // Convierte ANSI a OEM y graba el campo
else
Fieldput( i , uVALOR )
endif

Al leer:
uValor:= FieldGet( i ) // Obtiene Valor del campo
if ValType( uValor ) = 'C' // El valor leido es un string
uValor:=hb_oemTOansi( uValor ) // Convierte OEM a ANSI
endif

Por suerte solo accedemos a las DBF mediante una clase ( 'wrap' ) unica con lo cual se hicieron cambios mínimos y salio andando...

Un saludo,
Claudio
Responder