Problemas con caracteres especiales en Tablas.

2,369 views
Skip to first unread message

Juan Moreyra

unread,
Nov 17, 2010, 12:04:28 AM11/17/10
to mundovis...@googlegroups.com
Problemas con caracteres especiales en Tablas.
 
Tengo una tabla en FOXPRO
DOS y tengo el siguiente nombre:
 
En Foxpro DDS se ve: ACUÑA ZEGARRA
En Visual FoxPro se ve: ACU¥A ZEGARRA
 
El problema es que si corrigo en Visual, en
DOS se ve un caracter raro y viceversa
 
Necesito leer la misma tabla, pero desde ambos sistemas, desde VISUAL y FOXPRO
DOS
 
Como se puede solucionar?

Saludos.
 
Juan Moreyra

Grupo Baron

unread,
Nov 17, 2010, 11:37:51 AM11/17/10
to mundovis...@googlegroups.com

Esto te ocurrio porque cuando abriste la tabla con vfp te pidió el codepage (código de pagina) y escogiste uno que tiene esos caracteres. El foxpro del dos no ocupa codepage pero el vfp si entonces cuando tu abriste la base le relacionaste el codepage.  El codepage que necesitas es el 850, ahora cambiárselo a la tabla no es tan fácil.  Primero tenes que saber como ver que código de pagina tiene, entonces ocupas el CPDBF.  Asumamos que tenemos la tabla empleado.dbf  entonces abri la tabla y corre el cpdbf

Use empleado

?cpdbf(“empleado”)  ***el resultado es el código de pagina, 0 es si no tiene

Para cambiar el código de pagina tenes  que correr un programa que se llama cpzero y se encuentra en C:\PROGRAM FILES\MICROSOFT VISUAL FOXPRO 9\TOOLS\CPZERO\

Entoces das un

SET PATH TO C:\PROGRAM FILES\MICROSOFT VISUAL FOXPRO 9\TOOLS\CPZERO\

Y corres el cpzero asi

DO CPZERO WITH “EMPLEADO.DBF”,850 y listo ya tenes el codigo de pagina en 850 y te desaparecen los ¥ y te aparecen las Ñ

Reivisa el codepage

Use empleado

?cpdbf(“empleado”)  ****Aquí te tiene que dar 850

 

 

Ojala te sirva

 

Gerardo

--
_______________________________________________________________
Has recibido este mensaje porque estás suscrito al Grupo "Mundo Visual
FoxPro" de Grupos de Google.
 
Para anular la suscripción a este grupo, envía un mensaje a:
mundovisualfox...@googlegroups.com

tazdevil777

unread,
Nov 19, 2010, 1:04:24 PM11/19/10
to Mundo Visual FoxPro
Hace un tiempo tenía unas aplicaciones hechas en Visual que explotaban
data de un sistema hecho en clipper y las tablas dbf estaban en DOS.

Lo que tuve que hacer en la aplicación visual era una rutina, que
buscaba los caracteres ¥ en el nombre del cliente y los reemplazaba
por la Ñ; ojo que esto lo hacía en variables de memoria para no
alterar como se veía el nombre en la aplicación clipper...

La rutina era algo así si mal no me acuerdo:

xnom=mclient
do while at('¥',xnom)>0
xnom=stuff(xnom(at('¥',xnom),1,'Ñ')
enddo

Si no tenía el caracter ¥ nunca entraba al Do, pero si habia uno a más
los cambiaba; así podía mostrar el nombre en la aplicación visual de
manera correcta.

Cristobal

unread,
Nov 19, 2010, 3:38:18 PM11/19/10
to mundovis...@googlegroups.com
Para reemplazar cadenas se utiliza STUFF()


--------------------------------------------------
From: "tazdevil777" <jdav...@gmail.com>
Sent: Friday, November 19, 2010 12:04 PM
To: "Mundo Visual FoxPro" <mundovis...@googlegroups.com>
Subject: [Mundo Visual FoxPro] Re: Problemas con caracteres especiales en
Tablas.

> Hace un tiempo ten�a unas aplicaciones hechas en Visual que explotaban


> data de un sistema hecho en clipper y las tablas dbf estaban en DOS.
>

> Lo que tuve que hacer en la aplicaci�n visual era una rutina, que


> buscaba los caracteres � en el nombre del cliente y los reemplazaba

> por la �; ojo que esto lo hac�a en variables de memoria para no
> alterar como se ve�a el nombre en la aplicaci�n clipper...
>
> La rutina era algo as� si mal no me acuerdo:


>
> xnom=mclient
> do while at('�',xnom)>0

> xnom=stuff(xnom(at('�',xnom),1,'�')
> enddo
>
> Si no ten�a el caracter � nunca entraba al Do, pero si habia uno a m�s
> los cambiaba; as� pod�a mostrar el nombre en la aplicaci�n visual de


> manera correcta.
>
>
> On 17 nov, 00:04, Juan Moreyra <juanmoreyra3...@hotmail.com> wrote:
>> Problemas con caracteres especiales en Tablas.
>>
>> Tengo una tabla en FOXPRO DOS y tengo el siguiente nombre:
>>

>> En Foxpro DDS se ve: ACU�A ZEGARRA


>> En Visual FoxPro se ve: ACU�A ZEGARRA
>>
>> El problema es que si corrigo en Visual, en DOS se ve un caracter raro y
>> viceversa
>>
>> Necesito leer la misma tabla, pero desde ambos sistemas, desde VISUAL y
>> FOXPRO DOS
>>
>> Como se puede solucionar?
>>
>> Saludos.
>>
>> Juan Moreyra
>

> --
> _______________________________________________________________
> Has recibido este mensaje porque est�s suscrito al Grupo "Mundo Visual


> FoxPro" de Grupos de Google.
>

> Para anular la suscripci�n a este grupo, env�a un mensaje a:
> mundovisualfox...@googlegroups.com
>

Juan Moreyra

unread,
Nov 24, 2010, 7:27:04 PM11/24/10
to mundovis...@googlegroups.com
Hola Gerardo:
 
He probado lo que me has dicho y sigue igual:

En Foxpro DDS se ve: ACUÑA ZEGARRA
En Visual FoxPro se ve: ACU¥A ZEGARRA


solo cambia el code page a 850, he visto que cuando lo creo desde DOS lo crea con el Codepage en 0, y si lo creo en Visual no lo puedo leer desde el DOS
pero he probado cambiando con el CPZERO.prg que indicas, y si, cambia el Codepage, pero los caracteres siguen igual, no sufren cambios.
Revisando el codigo del CPZERO a grandes rasgos, veo que solo modifica algunos bytes en la cabecera del DBF
 
Lo que necesito es leer la tabla creada en DOS desde visual foxpro, pero que no se alteren los caracteres.

 
 
Segun Tazdevill777
Hace un tiempo tenía unas aplicaciones hechas en Visual que explotaban

data de un sistema hecho en clipper y las tablas dbf estaban en DOS.

Lo que tuve que hacer en la aplicación visual era una rutina, que

buscaba los caracteres ¥ en el nombre del cliente y los reemplazaba
por la Ñ; ojo que esto lo hacía en variables de memoria para no
alterar como se veía el nombre en la aplicación clipper...

La rutina era algo así si mal no me acuerdo:


xnom=mclient
do while at('¥',xnom)>0
xnom=stuff(xnom(at('¥',xnom),1,'Ñ')
enddo

Si no tenía el caracter ¥ nunca entraba al Do, pero si habia uno a más
los cambiaba; así podía mostrar el nombre en la aplicación visual de
manera correcta.


 
 
Esta solucion tambien la habia pensado, pero es recurrir a una rutina extra en cada registro u proceso que realice
si no queda otra habra que hacerlo asi, aunque pensé que habia una forma mas decente y sencilla
porque es de suponer que son muchos que han pasado por esto
claro que lo radical seria dejar el sistema en DOS y pasarlo a VISUAL modifcando las tablas y eliminando el sistema en DOS
pero por el momento el problema es que el sistema en DOS esta al 100% operativo y el del VISUAL de a poco se esta pasando
y lo que se necesita es que ambos lean la misma tabla
 
A ver si me dan una manito, un dedito, o aunque sea la uñita de ayuda.
 
 
 
Juan Moreyra





 

From: grupo...@hbaron.com
To: mundovis...@googlegroups.com
Subject: RE: [Mundo Visual FoxPro] Problemas con caracteres especiales en Tablas.
Date: Wed, 17 Nov 2010 10:37:51 -0600

Grupo Baron

unread,
Dec 2, 2010, 11:43:35 AM12/2/10
to mundovis...@googlegroups.com

Algo estas haciendo mal, a mi si me funciona.

Reply all
Reply to author
Forward
0 new messages