Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2011-01

Caracteres "extraños" en DBF

2 messages · 2 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

josquin

Hola a todos y desearos un Feliz a�o nuevo.

Tengo un peque�o problema con un fichero DBF. Uso el componente Tdbf para acceder a ella, con su correspondiente Datasource y DBGrid. El problema es que la tabla la gestiona un "viejo" programa DOS en Clipper, y en mi programa en Lazarus, cuando el registro tiene una "e�e", o cualquier otro car�cter "extra�o", me muestra una interrogaci�n. S� que el fichero DBF usa un juego de caracteres OEM, y que en Windows, se usa el juego ANSI. S� tambi�n que se puede utilizar una funci�n de la Api de Windows para pasar los caracteres de un juego a otro, pero no consigo hacer funcionar correctamente esta funci�n para que me muestre los datos de forma correcta en el Grid. �alguna sugerencia?

Gracias por vuestra atenci�n.

Saludos.

Reply by email

José Mejuto
to josquin

Hello josquin,

Wednesday, January 5, 2011, 9:47:13 PM, you wrote:

j> Tengo un peque�o problema con un fichero DBF. Uso el componente Tdbf j> para acceder a ella, con su correspondiente Datasource y DBGrid. j> El problema es que la tabla la gestiona un "viejo" programa DOS en j> Clipper, y en mi programa en Lazarus, cuando el registro tiene una j> "e�e", o cualquier otro car�cter "extra�o", me muestra una j> interrogaci�n. S� que el fichero DBF usa un juego de caracteres OEM, y j> que en Windows, se usa el juego ANSI. S� tambi�n que se puede utilizar j> una funci�n de la Api de Windows para pasar los caracteres de un juego a j> otro, pero no consigo hacer funcionar correctamente esta funci�n para j> que me muestre los datos de forma correcta en el Grid. �alguna sugerencia?

No es s�lo eso, es que todo en la LCL de Lazarus usa UTF8 no ANSI, por lo tanto tienes que convertir los datos del "codepage" que uses a UTF8, para ello puedes usar la unit "lconvencoding", y cuando grabas al rev�s claro.

Ahora de que juego de caract�res tienes que pasar a UTF8 eso si que no lo s�, supongo que del cp850 a UTF8, pero es una suposici�n. Simpre puedes probar con una de estas dos:
CP437ToUTF8
CP850ToUTF8

Best regards, Jos�

Reply by email