El Report Form .. TO ASCII genera archivo sin tildes ni eñes...

345 views
Skip to first unread message

Edgar Acevedo

unread,
Sep 6, 2013, 4:41:49 AM9/6/13
to publice...@googlegroups.com, Edgar Acevedo
Saludos respetables expertos:

Tengo un REPORT FORM que genera un archivo de texto usando la cláusual TO FILE MiTexto.TXT ASCII

La tabla que quiero "reportear" incluye tildes y eñes (son nombres de personas).  El problema es que el archivo generado tiene otros caracteres en lugar de las vocales tildadas y la eñe (á, é, í, ó, ú, ñ).

Como referencia, en el COPY TO, cuando se quiere generar un archivo plano que contiene con tildes y eñes, simplemente se agrega la cláusula   AS 850 (o sea usando el   AS nCodePage).

Ahora bien, veo que el REPORT FORM no tiene al parecido al  AS nCodePage del COPY TO.

¿ Existirá algo como un  SET CODEPAGE TO  para poder fijar mi página de código en 850 o 452 según lo necesito para que mi REPORT FORM escriba tildes y eñes al generar un archivo plano ASCII ?

Gracias por leer mi consulta, saludos



Edgar Acevedo

Fernando D. Bozzo

unread,
Sep 6, 2013, 5:03:05 AM9/6/13
to publice...@googlegroups.com, Edgar Acevedo
Hola Edgar:

Me parece que el problema está en crear los TXT como codepage 850, ¿por qué no usan el 1252 de Windows?

Saludos.-

Fernando D. Bozzo

unread,
Sep 6, 2013, 5:15:10 AM9/6/13
to publice...@googlegroups.com, Edgar Acevedo
Hola Edgar, otra cosa:

¿Qué codepage tiene la tabla de la que hacés el reporte? Porque eso puede influir también.




El viernes, 6 de septiembre de 2013 10:41:49 UTC+2, EdgarGt escribió:
Message has been deleted

Ricardo Pina

unread,
Sep 8, 2013, 10:18:10 AM9/8/13
to Grupo VFP
Hola Edgar
 
Si no encontraron una solución definita y es solo para el informe haz lo más sencillo.
 
COPY TO filesoloparareport AS nCodePage
REPORT FORM Reportconfilesoloparareport
 
Utilizando el reporte con la nueva tabla con el CodePage correcto.
 
Saludos


El 8 de septiembre de 2013 07:37, Fer <fdb...@gmail.com> escribió:
Edgar, creo que no te conviene complicarte. Cambiar el CodePage de tola la aplicación y de todo lo que hagas por una sola tabla, que es la que origina el problema, no vale la pena. Yo intentaría solucionar lo de la tabla.

Se me ocurren 2 opciones:

1) Migrar los datos de la tabla a una con la misma estructura pero CP 1252. ¿Es posible? ¿Es necesario mantener esa vieja tabla tal cuál? ¿Se sigue actualizando con alguna app vieja de FoxPro 2.6?

2) Si la tabla no se puede tocar, se podrían volcar los datos a un cursor y hacer el report sobre el cursor




El 8 de septiembre de 2013 10:24, Edgar Acevedo <aper...@gmail.com> escribió:
Fernando:

Muchas gracias por tu interés en mi caso.  Te explico el detalle del problema a la vez que contesto algunas de tus preguntas:

1- Tengo una tabla hecha en Foxpro DOS 2.6 (ignoro que CodePage tenga, asumo que es el 850 - International DOS).

2- Cuando genero el reporte con el REPORT FORM ... TO FILE ... ASCII el archivo de texto plano me queda así:

===========================================================
C¢digo   Apellidos                      Nombres
===========================================================

10416    CASTA¥EDA GONZALEZ             RAéL ANDRES               
10474    PE¥A ESTRADA                   SERGIO RAéL               
10476    QUIEJ ZAPàN                    MOIS S                    
10615    IBARRA RUIZ                    OSCAR RADAMES             
10646    CASTRO VILLAGRµN               OSCAR REN                
10672    FAILLACE LIMA                  EDGAR ARMANDO             
10691    URRUTIA MEL NDEZ               GONZALO ARMANDO           
10714    MONTENEGRO LEIVA               JULIO C SAR               
10731    DÖAZ ALONZO                    ENRIQUE NAPOLEàN          
10771    ARMAS CUELLAR DE LàPEZ         ELSA MARINA               
10789    CAMPOS LEIVA                   REYES                     

3- Como podrás notar, en lugar de la letra Ñ, puso el signo ¥, en lugar de la Ú puso é, en lugar Á puso µ.  Y no digamos con la É, que como podrás ver en los nombres MOISÉS, RENÉ, MELÉNDEZ, CÉSAR (subrayados) de una vez la omitió.

4- Ahora bien, la cosa se compone bastante (pero NO totalmente) si utilizo el siguiente comando antes de generar el reporte:    SET NOCPTRANS TO CODIGO, NOMBRE, APELLI
Es decir, le indico a VFP que NO TRADUZCA el CodePage de los campos CODIGO, NOMBRE y APELLI. Te muestro un ejemplo de como queda usando el SET NOCPTRANS:

===========================================================
C¢digo   Apellidos                      Nombres
===========================================================

10416    CASTAÑEDA GONZALEZ             RAÚL ANDRES               
10474    PEÑA ESTRADA                   SERGIO RAÚL               
10476    QUIEJ ZAPÓN                    MOISÉS                    
10615    IBARRA RUIZ                    OSCAR RADAMES             
10646    CASTRO VILLAGRÁN               OSCAR RENÉ                
10672    FAILLACE LIMA                  EDGAR ARMANDO             
10691    URRUTIA MELÉNDEZ               GONZALO ARMANDO           
10714    MONTENEGRO LEIVA               JULIO CÉSAR               
10731    DÍAZ ALONZO                    ENRIQUE NAPOLEÓN          
10771    ARMAS CUELLAR DE LÓPEZ         ELSA MARINA               
10789    CAMPOS LEIVA                   REYES   

5- Te digo que el arreglo NO es total ya que el título del campo CODIGO, como podrás ver, todavía lo escribe como
C¢digo en lugar de Código La razón es muy simple de deducir:  El título "Código" es una etiqueta y no un campo.  El SET NOCPTRANS arregló el problema de los campos pero no el de los títulos (que son labels) porque ese no es su trabajo.

Claro que lo que me queda es quitar las tildes de los títulos (labels) pero ... ¿ y las "eñes" ?.  Por ejemplo si quisiera poner como título:  COMPAÑIA.

Es decir, hasta ahora ya arreglé el problema de las tildes y eñes de los campos de la tabla con el SET NOCPTRANS, pero no se me ocurre como corregir ese problema con los títulos (labels) del REPORT FORM.  De momento me he salvado como "gato panza arriba" ya que afortunadamente pued prescindir de todas las tildes de los títulos y además ningún título lleva eñe.  Pero ni modo, me ha quedado la duda existencial:  ¿Habrá solución con los labels del REPORT FORM?.

Solución a medias:
Cambié el CodePage en el CONFIG.FPW (CODEPAGE=850) y ¡ Voilá !  se arreglan los labels del REPORT FORM en los archivos planos (ya aparecen las tildes y eñes) pero la visualización de tildes y eñes (en los Grids por ejemplo) se arruina (porque debe estar en 1252).

Siguiendo tu sugerencia, ¿Es posible cambiar a conveniencia el CodePage entre 850 y 1252 sobre la marcha y sin recurrir al CONFIG.FPW

Saludos,



Edgar Acevedo.





--
            

                   Ricardo Pina

Desarrollo y Servicios Informáticos

                  Profesionales
               www.dsip.com.ar

 

 

Víctor Hugo

unread,
Sep 8, 2013, 4:06:13 PM9/8/13
to publice...@googlegroups.com, Edgar Acevedo
Hola Edgar

Si el archivo de texto generado no es muy grande, puedes probar algo parecido a lo siguiente:

CPCONVERT( 850,1252, FILETOSTR("archivo.txt") )

Saludos,
Víctor.
Lambaré = Paraguay.
Reply all
Reply to author
Forward
0 new messages