Problema con archivo .csv y campos en blanco en StringGrid
Hola a todos!!
Escribo para preguntarles sobre una duda que me ha traido de cabeza, he leido ya los post e hilos del foro en lo que refiere a importar archivos a delphi. Estoy programando en Delphi5 y archivos .csv .Ya tengo la importación, mi problema ahora radica en que si tengo en mi archivo: Cita:
la función de:
para los delimitadores y si funciona bien cuando tengo todos los campos completos. Todo lo que hasta ahorita llevo lo he aprendido de este maravilloso Foro y de los hilos que muchos de los usuarios han posteado, asi como las sugerencias y dudas que han tenido, los cuales me han servido de mucho y ayudado también, pero no sé como poder resolver esto =(. El archivo .csv me lo pasan así con esos datos y campos. Espero de verdad me puedan orientar y ayudar, ¡se los agradeceria mucho! Saludos, Karen |
Hola Karen.
Espero haberte entendido bién, proba si te funciona de este modo:
Llamada de prueba:
Saludos. :) Edito: (*) Esta línea la usé para garantizar que existan en el StringGrid tantas columnas como campos se le envían. La podés quitar si ya tenes definido con anterioridad cuantas columnas serán. ( si hay algo en lo que no fuí claro por favor decime ) |
¿Y exactamente el problema que tienes cual es?
|
Gracias por contestar ecfisa!
Probé lo que me sugeriste, pero me marca error:
Cita:
Pero no me acepta el DelimitedText :S |
Hola Casimiro
Cita:
Gracias por interesarte, lo que pasa es que al leer mi archivo .csv tengo algunos campos en blanco como puse en un principio: Cita:
|
Hola Karen.
No sé por que te puede estar mostrando ese error, pero para que controles con tranquilidad te adjunto un ejemplo muy simple que me funciona correctamente. Saludos. :) |
Cita:
Te agradezco tu atención y tiempo. =) |
Hola Karen.
Fijate en las líneas: Si no figura Variants, como es el caso de arriba, sólo agregalo:
Saludos. |
Gracias Ecfisa,
Hice lo siguiente: abri en delphi el zip que me enviaste, al tratar de compilar me marcaba que la unidad Variants no se encontraba, aun así la comenté del uses, y me volvio a marcar el error que te comenté hace rato: Cita:
Por otra parte tambien investigué la propiedad DelimitedText del StringList porque en el la clase TStrings que tengo no me aparece y me encontré que para Delphi5 tampoco está incluida ¿Qué puedo hacer? gracias mil nuevamente por contestarme |
Hola Karen.
Y bueno... si no la trae, no nos queda más remedio que hacerla :) Una opción para que pruebes si funciona en Delphi 5:
Llamada de ejemplo:
La función que hice tiene la ventaja que podés pasarle varios delimitadores, por ejemplo:
Saludos. :) |
Tras probar...
Hola de nuevo ecfisa, tardé en contestar porque estuve probando lo que tuviste atención de ayudarme (;, tuve algunos detalles para mostrar en mi grid el archivo cargado. Porque me lo mostraba todo en una sola línea....aunque si me respetaba mis campos en blanco.
Tras otras pruebas y modificaciónes, me encontré con una cadena dentro de mi archivo : Cita:
el delimitador es la "," esto teoricamente estaba bien porque respetaba el delimitador, pero en mi caso estaba mal porque es una cantidad completa... Lo que hice fue lo siguiente :
Hice una pequeña modificacion a la funcion ExtractStrings original. Como te puedes dar cuenta en la linea Cita:
Y asi me muestra ya mis campos como en el excel. ¿Crees que no tenga problema alguno con datos posteriores, el haber hecho esa modificación en la función? :S Espero tu valioso comentario. Un gran saludo y muchas gracias por demostrar tu interés y ayuda. Si tienes alguna observación o comentario para que mejore este asunto, te lo agradeceré demás. P.D.:El archivo con datos incompletos es similar a este (.csv): Cita:
|
Hola Jetzuvely21.
Cita:
Es posible que si cambian algún formato al guardar, o encuentras alguna ocurrencia no prevista, tengas que retocar el código, pero teniéndolo ya tán avanzado no serán cambios mayores. Saludos. :) |
Te agradezco (=
Gracias por responderme tan pronto. (=
Si ahorita solo ando revisando formateo de campos una que otra validación, pero si anda bien. Agradezco ampliamente tu atención y colaboración. Un enorme saludo! ^^ |
La franja horaria es GMT +2. Ahora son las 23:01:55. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi