FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Cómo abrir archivos CSV con FireDac (Delphi XE5) en pocos pasos
Estimados colegas, este post surge a raíz de la necesidad de levantar archivos csv a una tabla para luego trabajar con ella, en mis comienzos (2005) lo había hecho en Delphi 7 y el TJvCsvDataSet de las Jedi, paquete que instalé con cientos de componentes sólo para el CSV. Y así como ese caso podría enumerar varios más… Con mi escaso conocimiento buscaba fuera lo que no sabía hacer sin componentes de terceros o lo desconocía, todos mis programas de esa época aún funcionan, lo único que al par de años tenía pereza de funcionar era el querido Delphi 7 con millones de componentes que no usaba. Que luego fui depurando casi en su totalidad.
Luego di un salto enorme a XE5 con el sigo trabajando prácticamente sin componentes de terceros, y me he visto en la necesidad de actualizar mi viejo programa que leía archivos CSV para efectuar actualizaciones de precios a un soft de gestión. Si bien el SCV es un formato muy común para intercambio y exportación de datos, desde ese entonces no lo había vuelto a utilizar a través de mis programas con una interface. Luego de investigar y probar con ADO, lo cual funciona pero tuve inconvenientes abriendo archivos de estructura variable y desconocida, seguí profundizando y viendo que otra cosa me estaba perdiendo del XE5. Ya que la mayoría, cuando aprendemos algo y si funciona lo utilizamos mientras se pueda, en parte algunos desconfiamos de lo nuevo pero lo principal es el tiempo de aprendizaje del que muchas veces no disponemos. Finalmente la aventura me llevó a probar FireDAC, aproveché la oportunidad y experimenté conexiones con MySql, Firebird y AdvantageDatabase (SyBase) que son las bases con las que suelo trabajar, me sorprendió la sencillez. Yendo al grano y sin más rodeos, luego de recorrer cantidad de foros buscando info sobre este punto y habiendo encontrado poco en concreto he decidido compartirlo con todos ustedes para facilitar el aprendizaje a otros. En el proyecto demo que voy a describir utilicé un Formulario (Form1 – principal.pas), algunos Tlabel sin importancia, 2 Tedit, (uno para ruta del csv y otro para el separador), un TOpendialog, u Tbutton para ejecutar el Opendialog de búsqueda de archivo., Un Tbitbutton (Kind:= BkClose). Un datasource y Dbgrid para visualizar el contenido, y lo indispensable de FireDAC que son TFDGUIxWaitCursor, TFDMemTable y TFDDataMove. El trabajo se realiza con los dos últimos, primero creamos el FDMemTable1 y luego el FDDatamove1, en este último asignamos como destino el FDMemtable1. Y luego debemos especificar la estructura de los archivos que vamos a abrir, esto podemos hacerlo en tiempo de diseño, y dejar establecidos los parámetros pero funcionará correctamente sólo con archivos de la misma estructura. Como necesito abrir archivos donde se desconoce de antemano (al momento de programar) cuál será la estructura, lo hacemos en Tiempo de Ejecución, lo cual implica sólo unas pocas líneas de código. Por lo que he visto lo componentes que he usado siguen vigentes hasta XE8, luego a partir de Seattle surgen unos cambios de nombre y reemplazos pero la lógica es similar. Aquí debajo está el código del botón que ejecuta el Opendialog y luego se encarga del proceso de carga. También se adjunta el proyecto , que debería funcionar en todas las versiones de delphi XE hasta la 8
Si no van a trabajar con campos FLOAT, pueden omitir el FOR. Espero resulte de utilidad! |
#2
|
||||
|
||||
#3
|
||||
|
||||
Muchas gracias por el aporte.
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#4
|
||||
|
||||
Gracias por compartir
|
#5
|
|||
|
|||
para todos un buen día, he regresado después de muchos años de ausencia,
en la versión delphi 7, para importar archivos no era fácil, jejejje volvi ahora con Embarcadero® Delphi 10.2 Version 25.0.31059.3231 , quisiera poder desarrollar y usar los componentes de firedac, no logro hacer funcionar esto. Amadis, gracias por compatir esta información. este código lo tienes en la versión delphi 10.2, he descargado el proyecto y me genero errorres al compilar. los componentes no se llaman igual. Última edición por ayepes2003 fecha: 02-10-2018 a las 06:35:01. Razón: aclarar la version que uso |
#6
|
||||
|
||||
Por favor, dale un repaso a la guía de estilo, gracias
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
FireDac y archivos sch | oscjae | Conexión con bases de datos | 2 | 23-05-2016 20:27:03 |
¿cómo conectar base de datos access con un ado en delphi pasos? | Master23 | Conexión con bases de datos | 16 | 24-10-2010 03:39:22 |
pasos para abrir una tabla db | jhcaboverde | Conexión con bases de datos | 2 | 29-09-2010 20:25:59 |
Como desvirgar al Windows vista en pocos minutos | ArdiIIa | Seguridad | 13 | 04-06-2008 21:26:03 |
Archivos .D . D01 . DIR .I .T ¿como los puedo abrir? | Delphitest | Tablas planas | 4 | 28-01-2008 22:27:55 |
|