Importar CSV en Visual Fox

2,367 views
Skip to first unread message

Rubén Dario Lezcano Salinas

unread,
Feb 6, 2015, 1:26:55 PM2/6/15
to publice...@googlegroups.com
Buenas Tardes

Tengo un problemita,  al importar un csv me carga mal las columnas, es decir como en el campo se guarda un texto así:   "ruben, dario" 
El dario me pasa a otra columna.

Como puedo solucionarlo ?

Este es mi codigo

CREATE cursor archtxt (document_id c(20), item_id c(50), client_id c(9), client_name c(50), document_date d(8), money_rate_id n(3), ;
handler_id n(3), handler_name c(20), store_id n(3), store_name c(10), document_kind_id n(4), document_kind_name c(20), client_consignee c(3), ;
client_address c(3), city_name c(3), province_name c(3), client_postal c(3), country_name c(3),document_remark c(3), client_document_id n(1), ; 
product_id c(20), product_model c(20), product_mark c(3), sequence_number c(3), product_barcode c(20), client_model c(50), provider_model c(50), ;
product_batch c(50), product_description c(50), local_description c(50), spec_description c(50), product_unit c(50), product_color c(50),product_size c(50), ; 
material_description c(50), technic_request c(50), pack_request c(50), product_brand c(50), produce_area c(50), process_procedure c(50), process_unit c(50), ;
process_kind c(50), box_number c(50), middle_quantity c(50), unit_quantity c(50), pack_quantity c(50), product_quantity c(50), unit_price c(50), ; 
discount_percent c(50), tax_rate c(50), pack_volume c(50), net_weight c(50), gross_weight c(50), product_kind_id c(50), product_kind_name c(50), ;
deliver_timestamp c(50), item_remark c(50))
 
gcTable = GETFILE('CSV', 'Buscar archivo  .csv:', 'Abrir', 1, 'Examinar o crear')


gcTable=ALLTRIM(CHRTRAN(gcTable, ' ', '-'))


DO CASE
   CASE 'Untitled' $ gcTable
      WAIT WINDOW "No se selecciono archivo" NOWAIT 
        Return 
   CASE EMPTY(gcTable)
        WAIT WINDOW "No se selecciono archivo"  NOWAIT 
      RETURN
   OTHERWISE
         IF FILE('&gcTable')
            WAIT WINDOW "si existe seleccion de archivo" +gcTable NOWAIT 
         ELSE 
            WAIT WINDOW "No exite seleccion de archivo" +gcTable  NOWAIT 
            RETURN              
         ENDIF
      * Selecciono el cusrso temporal creado por el GETFILE
      SELECT archtxt  
      * Adiciono los datos desde el archivo temporal al cursor temporal 
      APPEND FROM &gcTable  DELIMITED  &&WITH " "
      SELECT archtxt
Brows 

Un saludo



Oscar Díaz

unread,
Feb 6, 2015, 1:41:42 PM2/6/15
to publice...@googlegroups.com
Colega, yo lo hago así:

append from &gcTable type delimited with character ';'

Rubén Dario Lezcano Salinas

unread,
Feb 7, 2015, 3:45:41 AM2/7/15
to publice...@googlegroups.com
Oscar Buenos Días, asi solo me muestra la primera columna

saludos
--

Rubén Lezcano

Rubén Dario Lezcano Salinas

unread,
Feb 7, 2015, 3:55:43 AM2/7/15
to publice...@googlegroups.com
El CSV esta delimitado por "," pero hay campos que contiene coma de por medio y ahí se separa, Ejemplo  "Torres Gomez, Ruben Dario" 
--

Rubén Lezcano

Rubén Dario Lezcano Salinas

unread,
Feb 7, 2015, 4:08:20 AM2/7/15
to publice...@googlegroups.com
Creo que lo que necesito es delimitar por comas y comillas pero no se como juntar las dos opciones.

Saludos
--

Rubén Lezcano

Fidel Charny

unread,
Feb 7, 2015, 6:39:47 AM2/7/15
to publice...@googlegroups.com
Si el separador de campos es "," (chr(44) ) y los campos caracter están calificados, te tendría que funcionar correctamente
SELECT cursor
APPEND FROM archivo_de_texto DELIMITED

Fernando D. Bozzo

unread,
Feb 7, 2015, 6:49:22 AM2/7/15
to publice...@googlegroups.com
Hola Rubén:

No es correcto abrir varios hilos con el mismo tema, es mejor mantenerse en uno.

En el nuevo hilo te respondí eso:
https://groups.google.com/d/msg/publicesvfoxpro/mU4k0gsoGMY/Y70NRA-2zfoJ

Rubén Dario Lezcano Salinas

unread,
Feb 7, 2015, 7:34:02 AM2/7/15
to publice...@googlegroups.com
Hola Fidel es coma pero no funciona no se por que

saludos
--

Rubén Lezcano

Fernando D. Bozzo

unread,
Feb 7, 2015, 7:52:21 AM2/7/15
to publice...@googlegroups.com
Hola Rubén:

Si ya probaste todo y no funciona, creo que sería más fácil si adjuntás un archivo txt (o .csv) con al menos 2 registros, para poder verlo directamente.

Saludos.-

Rubén Dario Lezcano Salinas

unread,
Feb 7, 2015, 8:13:29 AM2/7/15
to publice...@googlegroups.com
Fernando este es mi archivo, pero en tu ordenador desbes cambiar en la Region en Administrativo a Chino simplificado, "no español"

Si esta en Español funciona a la perfeccion pero al cambiar a Chino simplificado ahi es donde lee mal creo el archivo
lo bueno sería si al leer el archivo pudiera convertir a por ejemplo

STRCONV(archivo.csv,11)

Si se pudiera hacer algo así arreglaría el problema 

saludos
--

Rubén Lezcano

sale_201502001119.csv

Rubén Dario Lezcano Salinas

unread,
Feb 7, 2015, 11:02:05 AM2/7/15
to publice...@googlegroups.com
O como puedo separar por "," y por "?" me junta el handler_name con el store_id, ya que es un carácter chino lo que hace fox es que la , me lo convierte en ?  pero solo ocurre con dos campos si puedo separar por  como y por ? creo que areglo el problema, pero no se como hacerlo


--

Rubén Lezcano

Fernando D. Bozzo

unread,
Feb 7, 2015, 11:05:08 AM2/7/15
to publice...@googlegroups.com
Hola Rubén:

Ahora entiendo tu problema, y no es un problema de fácil solución.
Te comento lo que estoy haciendo para ver si encuentro algo y para que paralelamente puedas hacer tus investigaciones (que por ahí ya hiciste, no se)

Acabo de hacer esta búsqueda en Google:

vfp font for chinese characters


Me salen varios artículos:

http://stevenblack.com/intlasia/  => Lo estoy leyendo ahora

http://www.experts-exchange.com/Database/Software/FoxPro/Q_25040972.html

http://www.foxite.com/search.aspx?m=tags&q=Chinese


Parece que tengo que instalarme el Chibo para mostrar en Windows, y estoy viendo cómo hacerlo, ya que no encuentro la forma de instalarlo.

Hice algunas pruebas con DBF usando el CREATE CURSOR que pusiste y usando el CodePage del idioma Chino, pero me pasa lo mismo que a vos y me salen caracteres raros.

Por ahora hice esto, te comento si encuentro algo más.

Saludos.-




El 7 de febrero de 2015, 14:13, Rubén Dario Lezcano Salinas <lezcan...@gmail.com> escribió:

Rubén Dario Lezcano Salinas

unread,
Feb 7, 2015, 11:22:39 AM2/7/15
to publice...@googlegroups.com
Hermano querido he dado la vuelta el internet hace casi una semana estoy detrás de esto y no se como solucionarlo no veo otra opción o es que ya estoy segado de tantas horas delante del monitor, no lo se, pero sigo, voy a leer el ultimo link que me facilitas a ver que hay. si encuentro solución antes que me respondas te aviso y lo coloco aquí para que podamos ayudar a otros

saludos
--

Rubén Lezcano

Rubén Dario Lezcano Salinas

unread,
Feb 7, 2015, 11:35:46 AM2/7/15
to publice...@googlegroups.com
Fernando te comento algo si intentas abrir con libre office o excel te pregunta el delimitador de texto y la separación, entonces como podríamos configurar eso en visual fox

--

Rubén Lezcano

Fernando D. Bozzo

unread,
Feb 7, 2015, 11:37:18 AM2/7/15
to publice...@googlegroups.com
Ahora mismo no sé decirte porque me estoy instalando el paquete de idioma Chino para Windows 7 que son como 200 MB, pero luego lo veo.



Rubén Dario Lezcano Salinas

unread,
Feb 7, 2015, 11:47:00 AM2/7/15
to publice...@googlegroups.com
vale ok
--

Rubén Lezcano

Rubén Dario Lezcano Salinas

unread,
Feb 7, 2015, 11:48:05 AM2/7/15
to publice...@googlegroups.com
Invito una birras bien fria despues de esto, sabe sque hay una empresa en muy grande en España qeu desarrolla software se llama SAGE tampoco dan con la solución jejeje
--

Rubén Lezcano

Fernando D. Bozzo

unread,
Feb 7, 2015, 12:11:22 PM2/7/15
to publice...@googlegroups.com
Ok :)

Todavía no logro hacer que el Excel me muestre bien las columnas en Chino. ¿Vos como hiciste para que te las muestre bien?

Por otro lado, encontré (nuevamente) un artículo de Rick Strahl excelente sobre el tema que en un rato leo:

http://www.west-wind.com/presentations/foxunicode/foxunicode.asp


Saludos.-



Rubén Dario Lezcano Salinas

unread,
Feb 7, 2015, 12:38:20 PM2/7/15
to publice...@googlegroups.com
En excel voy a pestaña Datos, desde Texto y ahi lo cargo, si no te carga bien te recomiendo libre office es excelente para ver scv


--

Rubén Lezcano

Rubén Dario Lezcano Salinas

unread,
Feb 7, 2015, 12:41:43 PM2/7/15
to publice...@googlegroups.com
ese articulo me ayudo bastante para mostrar en un texbox los caracteres chinos, pero no se si servirá para el csv
--

Rubén Lezcano

Fernando D. Bozzo

unread,
Feb 7, 2015, 12:50:30 PM2/7/15
to publice...@googlegroups.com
Ya lo había leido, pero como nunca lo necesité, lo dejé en el tintero para cuando lo necesitara.

La primera parte del artículo habla sobre el tratamiento de los datos y la segunda parte sobre la visualización.

Seguro que algo sale de ahí, además es más nuevo que el primero que te había puesto, y es principalmente para VFP 9.


Rubén Dario Lezcano Salinas

unread,
Feb 7, 2015, 1:10:59 PM2/7/15
to publice...@googlegroups.com
Si yo ya me lei como 10 veces antes de ponerme ha hacer esto y la verdad que resulto, ahora el problema esta cuando yo leo ese csv ya carga mal el fox no carga bien osea no divide bien las columnas

--

Rubén Lezcano

Rubén Dario Lezcano Salinas

unread,
Feb 7, 2015, 1:12:58 PM2/7/15
to publice...@googlegroups.com
o si hay posibilidad de mostrar solo dos columnas de un csv, a lomejor ahí se puede arreglar ya que solo necesito dos columnas
--

Rubén Lezcano

Fernando D. Bozzo

unread,
Feb 7, 2015, 6:29:18 PM2/7/15
to publice...@googlegroups.com
Hola Rubén:

Me leí el artículo de Rick Strahl nuevamente e hice algunas de las pruebas que él hace, y según lo que comenta en ese artículo no es posible mostrar en Fox más de un lenguaje a la vez, y lo que muestra en el último form en algo parecido a un grid, realmente es un control Activex que permite mostrar caracteres Unicode. Esto respecto de la Interfaz.

Respecto de los datos, yo poder usar APPEND FROM y me mantiene el tipo de dato original (UTF-8), pero en el BROWSE se ven caracteres raros para los datos en Chino, porque FoxPro no puede mostrar más de un tipo de código de páginas a la vez.

Lo que te recomiendo es que uses las herramientas adecuadas para poder ver todo esto, y en este caso te vendría muy bien instalarte el Notepad++ que es gratuito y tiene soporte nativo para varios juegos de caracteres, incluyendo el Chino. Una vez lo tengas instalado, abrí el archivo de texto que enviaste y vas a poder ver que los datos en Chino se ven perfectamente y que la codificación del archivo es UTF-8, como esta captura:




Ahora, para importar este archivo a tu DBF, y usando este editor, tenés que quitar la primera línea que tiene los nombres de los campos, ya que no forman parte de los datos y solamente sirven en el Excel.

La importación es fácil una vez que creás la tabla:

APPEND FROM sale_201502001119.csv TYPE DELIMITED


Haciendo un BROWSE vas a ver que los datos en Chino se ven raros:





Pero para confirmar que los datos en Chino están bien guardados, podés hacer la prueba de guardarlos como TXT:

goto 6
STRTOFILE(handler_name, 'handler_name.txt')
STRTOFILE(document_kind_name, 'document_kind_name.txt')
STRTOFILE(product_description, 'product_description.txt')


y luego abrir estos TXT con el Notepad++, donde tenés que ver los caracteres en Chino:




Creo que al final el único problema por resolver es cómo mostrar estos campos en Fox, y según lo que dice Rick en su artículo vas a tener que usar algún Activex que soporte Unicode, por lo que podrías usar el que comenta en la parte final de su artículo (Microsoft Forms EditBox control and the Data Dynamics SharpGrid control) o incluso podrías contemplar la posibilidad de mostrarlo como HTML en un control InternetExplorer.Application incrustado en un form, supongo que ya verás qué es lo que más te convence.


Bueno, te dejo con todo esto para que lo vayas viendo, pero acordate que en Fox no vas a poder ver ambos tipos de datos con los controles nativos, ya que no están preparados para multi-lenguaje.


Saludos!


Rubén Dario Lezcano Salinas

unread,
Feb 9, 2015, 7:08:01 AM2/9/15
to publice...@googlegroups.com
Excelente explicación Fernando, pero no me funcionó sigue cargando mal desde el csv

saludos  
--

Rubén Lezcano

Fernando D. Bozzo

unread,
Feb 9, 2015, 7:12:13 AM2/9/15
to publice...@googlegroups.com

Yo tengo el Windows 7 configurado normal (Español ), y solo habilité el soporte para Chino tradicional

¿Vos como lo tenés? Porque me funcionó de primera

Rubén Dario Lezcano Salinas

unread,
Feb 9, 2015, 8:25:50 AM2/9/15
to publice...@googlegroups.com
tengo windows 8 y lo mismo que tu

--

Rubén Lezcano

Rubén Dario Lezcano Salinas

unread,
Feb 9, 2015, 8:26:14 AM2/9/15
to publice...@googlegroups.com
tienes teamview? asi lo miras ti tienes tiempito

--

Rubén Lezcano

Rubén Dario Lezcano Salinas

unread,
Feb 9, 2015, 8:29:22 AM2/9/15
to publice...@googlegroups.com
yo tengo el archivo en el note pad++, bien ahora quito la primera fila y lo guardo como txt. Bien ahora llamo a ese txt desde fox y al hacer el brows no me muestra como a ti
--

Rubén Lezcano

Fernando D. Bozzo

unread,
Feb 9, 2015, 8:33:31 AM2/9/15
to publice...@googlegroups.com

No puedo, estoy en la oficina.

Adjunta algo, una captura de cómo te lo muestra, si no es imposible saber que puede faltarte.

Con la tabla abierta también hacé un LIST STATUS TO FILE y adjuntá el archivo que genera, para ver los seteos

Rubén Dario Lezcano Salinas

unread,
Feb 9, 2015, 8:42:08 AM2/9/15
to publice...@googlegroups.com
Imágenes integradas 1
Esa es mi codigo 

Y esto muestra, com podras ver el 101 no separa

Imágenes integradas 2

asi como vos me mostraste en tu imagen se ve bien

--

Rubén Lezcano

Fernando D. Bozzo

unread,
Feb 9, 2015, 8:49:37 AM2/9/15
to publice...@googlegroups.com
Rubén, si te fijás bien, tenés desconfigurado el Windows, ya que parte de los menus te los muestra en Chino en vez de en Inglés o Español. Por ejemplo, en el menú "Edición" tenés mezcla de chino.

La configuración po defecto del lenguaje de Windows la tengo normal, pero me parece que vos la reconfiguraste a Chino.

Por otro lado, yo estoy usando VFP 9 SP2, ¿vos que Service Pack estás usando? (pegá el resultado de VERSION(4) )

Ah, y te faltó el archivo del LIST STATUS


Saludos.-


Rubén Dario Lezcano Salinas

unread,
Feb 9, 2015, 9:30:24 AM2/9/15
to publice...@googlegroups.com
que era el list status?  uso fox 8
--

Rubén Lezcano

Rubén Dario Lezcano Salinas

unread,
Feb 9, 2015, 9:30:36 AM2/9/15
to publice...@googlegroups.com
no tengo el 9
--

Rubén Lezcano

Fernando D. Bozzo

unread,
Feb 9, 2015, 9:36:51 AM2/9/15
to publice...@googlegroups.com
El LIST STATUS es un comando de FoxPro que existe desde que era FoxBase+ allá por 1990, y es útil como el agua :)

Si no tenés VFP 9, volviste a cambiar la configuración de Windows para dejarla como estaba (o sea, que no sea Chino por defecto), volviste a probar la importación y no te anduvo, entonces no sé me ocurre más nada de qué probar, porque yo no tengo VFP 8 :(

Por ahi otro que lo tenga pueda hacer la prueba...

Rubén Dario Lezcano Salinas

unread,
Feb 9, 2015, 9:45:33 AM2/9/15
to publice...@googlegroups.com
Si pongo en ingles o español funciona de maravilla pero los ordenadores deben de tener esa configuracion por que otro programa lo necesita en chino por lo cual no puedo cambiar debe de ser todo chino
--

Rubén Lezcano

Rubén Dario Lezcano Salinas

unread,
Feb 9, 2015, 9:46:33 AM2/9/15
to publice...@googlegroups.com
Fernando y un comando para cargar el csv a mysql desde fox?se podrá  eso?
--

Rubén Lezcano

Rubén Dario Lezcano Salinas

unread,
Feb 9, 2015, 9:46:52 AM2/9/15
to publice...@googlegroups.com
ya con la tabla hecha y con los campos iguales, que te parece esa solucion
--

Rubén Lezcano

Fernando D. Bozzo

unread,
Feb 9, 2015, 11:39:06 AM2/9/15
to publice...@googlegroups.com
La verdad que no sé, hasta ahora no usé Fox con MySQL.

¿Pero los datos te interesa tenerlos en DBF o en MySQL? Porque si te interesa tenerlos en DBF otra opción es que te montes una máquina virtual (VirtualBox por ejemplo) con un Windows configurado en Español y lo usen para procesar esos archivos.

Seguramente haya otra forma, pero no tengo ni idea de las diferencias que hay entre un Sistema Operativo en Chino y otro en Español, más allá de lo obvio que se vé, ya que por lo visto entre esas diferencias está la forma de interpretar el mismo archivo de texto de forma distinta. :-(




Rubén Dario Lezcano Salinas

unread,
Feb 9, 2015, 11:44:26 AM2/9/15
to publice...@googlegroups.com
los necesito en mysql, he investigado sobre el "load data infile" pero no se montarlo en fox, según estoy leyendo carga un archivo csv a mysql

--

Rubén Lezcano

Rubén Dario Lezcano Salinas

unread,
Feb 9, 2015, 12:29:15 PM2/9/15
to publice...@googlegroups.com
Fernandoooooooo lo he solucionado :) :) :)

Gracias por todo

Solución:

Como el archivo lo tengo en un CSV lo que hago es desde un botón del fox selecciono el CSV y lo cargo en MYSQL y desde ahí ya realizo las consulta que necesito. Cuando traigo de la BD de agrego el strconv() para convertir los unicode y funciona de mil maravillas

Saludos amigazo
--

Rubén Lezcano

Fernando D. Bozzo

unread,
Feb 9, 2015, 12:33:10 PM2/9/15
to publice...@googlegroups.com

Qué bueno, me alegro un montón :-)

Reply all
Reply to author
Forward
0 new messages