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
Claudio C
Posts: 46
Joined: Sun Sep 20, 2015 8:13 pm
Location: Buenos Aires

Problemas con dbfs y acentos

Postby Claudio C » Tue Oct 09, 2018 10:00 pm

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
Attachments
codigos.jpg
codigos.jpg (44.3 KiB) Viewed 1088 times
User avatar
XeviCOMAS
Posts: 521
Joined: Sat Mar 12, 2011 8:16 pm

Re: Problemas con dbfs y acentos

Postby XeviCOMAS » Wed Oct 10, 2018 9:04 am

Claudio,

yo lo estoy utilizando así, con XailerHarbour

Code: Select all

   //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
Posts: 46
Joined: Sun Sep 20, 2015 8:13 pm
Location: Buenos Aires

Re: Problemas con dbfs y acentos

Postby Claudio C » Thu Oct 11, 2018 2:15 am

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) Viewed 1051 times


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
Posts: 140
Joined: Wed Jan 07, 2015 6:31 pm

Re: Problemas con dbfs y acentos

Postby avitalini » Thu Oct 11, 2018 10:50 pm

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

Code: Select all

   REQUEST HB_CODEPAGE_ES850C
   REQUEST HB_CODEPAGE_ESMWIN
   
   HB_CDPSELECT( "ESMWIN" )
   HB_SETTERMCP( "ESMWIN" )
   
   SET(_SET_DBCODEPAGE, "ES850C" )

Saludos
Claudio C
Posts: 46
Joined: Sun Sep 20, 2015 8:13 pm
Location: Buenos Aires

Re: Problemas con dbfs y acentos (resuelto)

Postby Claudio C » Thu Oct 11, 2018 11:48 pm

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

Return to “Spanish”