Página 1 de 1

Aplicación para importar archivo de texto especial

NotaPublicado: Vie Mar 14, 2014 12:28 am
por PepeOooSevilla
Hola compañeros de Foro.
Me gustaría compartir con vosotros una aplicación que he programado para facilitarme el trabajo administrativo diario.
No es una aplicación que se pueda usar tal cual. Tendría que ser adaptada de acuerdo con las necesidades de cada uno, pero puede servir para ver la manera en que he resuelto "mi problema".
¿Qué es lo que hace esta aplicación?
En pocas palabras, importar un archivo de texto procedente de un informe de una base de datos, pero con la particularidad que un registro está dividido en varias líneas del archivo. Por esa razón no se puede utilizar el asistente para importar archivos CSV/TXT.
El archivo de texto de muestra se adjunta comprimido en formato zip para que veáis el formato del informe. Obviamente he eliminado todos los datos reales. Probad la macro con ese archivo, una vez descomprimido, para ver el resultado.
¿Cómo lo hace?
Al abrir el documento Calc se ejecuta la macro que carga un cuadro de diálogo desde donde se selecciona el archivo TXT a importar. Una vez comprobado que la extensión es TXT y que el archivo existe, se crea un nuevo documento de hoja de cálculo que es el que va a recibir los datos de la importación. En la "barra de estado" se va mostrando el número de líneas leídas cada X líneas, de acuerdo con el valor que le hayamos asignado en el código.
Al finalizar la importación se crea un filtro, se formatean las columnas y se eliminan las hojas vacías. La fila donde se escriben los subtotales es la indicada en el cuadro de diálogo (o bien la primer fila, o bien la última).
¿Se puede mejorar?
Pues claro que sí. Tened en cuenta que no me dedico profesionalmente a la programación de aplicaciones. Simplemente soy un programador aficionado.
¡Atención! Está programada en AOO Calc 4.0.1 y la utilizo en Windows XP y Windows 7 (nadie es perfecto :lol: :lol: ). No tengo posibilidad de probarla en otros sistemas (Linux, ...) así que no sé si funciona en estos sistemas.
Para no repetirme Simplemente muchas gracias y saludos cordiales.

Re: Aplicación para importar archivo de texto especial

NotaPublicado: Vie Mar 14, 2014 12:02 pm
por xiseme
Gracias (y muchas) a tí por compartir tu trabajo.

[modo broma on]
No tengo posibilidad de probarla en otros sistemas (Linux, ...
¡Ah no! ¡eso si que no! :mrgreen: No tienes ninguna necesidad; no tienes porqué, pero posibilidad sí. Con un Live-CD /Live-USB, ni siquiera hay que instalar.
[modo broma off]

Re: Aplicación para importar archivo de texto especial

NotaPublicado: Vie Mar 14, 2014 1:48 pm
por RMG
Muy buena utilidad, gracias por compartirla. Decirte que a mi me pasa como a ti, programamos por afición, empezamos por necesidad de tener una herramienta que nos facilite el trabajo administrativo del día a día y al final le cogemos el gusanillo y ya no lo dejamos.

Saludos

Re: Aplicación para importar archivo de texto especial

NotaPublicado: Vie Mar 14, 2014 5:52 pm
por fornelasa
Hola a todos....
Ya saben siempre hay un "aguafiestas" :ouch:

Primero, me parece que las interfaces con el usuario esta bien diseñadas, obvio se ve buen trabajo, es decir....bien bien... todo bien en la programación.......pero....
PepeOooSevilla llevo 2 horas o más tratando de importar un archivo de texto y "nomas" nada de nada, por lo tanto tengo una pregunta:
Me imagino que si el archivo de texto no tiene el formato exacto que indicas en el archivo zip entonces la aplicación no funciona, ¿es así?, digo lo anterior porque entonces..... si el formato de donde se bajan los datos no viene de tal suerte entonces la aplicación no "jala", es decir, si mi base de datos no genera tal formato ¿ya valí "chetos"?

chetos = "soy vulnerable y ya perdí"

¿como ves? ¿pudieras orientarme más?

Saludos, Federico.

Re: Aplicación para importar archivo de texto especial

NotaPublicado: Vie Mar 14, 2014 8:51 pm
por PepeOooSevilla
Hola.
Iré por orden ...
xiseme: Llevas muchísima razón. Me haré con uno lo más pronto posible.
RMG: Qué verdad es que al final le cogemos el gusto y ya no lo dejamos. Cuando me asignan una nueva tarea, lo primero que me pregunto es ¿se puede automatizar de alguna manera para ahorrarme trabajo?
FORNELASA:
Me imagino que si el archivo de texto no tiene el formato exacto que indicas en el archivo zip entonces la aplicación no funciona, ¿es así?
Efectivamente, te confirmo tus temores. Sólo funciona si el archivo TXT a importar tiene el formato exacto del TXT que he adjuntado. Siento de veras que hayas perdido tu tiempo.
En el código puedes ver, por ejemplo, que a la variable "NumCampos" le asigno el valor de 27 porque de este tipo de informe son los campos que me interesan. El array "Inicio()" guarda un entero que indica en qué posición de la línea leída comienza el dato correspondiente a ese campo y el array "NumCar()" guarda el número de caracteres que hay que leer. Como puedes observar está hecha totalmente a la medida de ese informe.
Y ahora me cito a mí mismo
No es una aplicación que se pueda usar tal cual. Tendría que ser adaptada de acuerdo con las necesidades de cada uno, pero puede servir para ver la manera en que he resuelto "mi problema".
La probabilidad de que exista otro informe igual fuera de la organización donde trabajo es cero, por tanto, no es una macro que se pueda utilizar sin hacerle previamente las modificaciones necesarias para que se pueda usar para importar otro tipo de informe. Sí puede ayudar para que otros compañeros vean el código y para que lo utilicen en sus propias macros, eso sí, con las modificaciones oportunas.
Saludos cordiales y muchas gracias por vuestros comentarios. :super:

Re: Aplicación para importar archivo de texto especial

NotaPublicado: Vie Mar 14, 2014 9:25 pm
por fornelasa
ok bien, gracias por la explicación, ahora es claro para mi :super:
Saludos, Federico.

Re: Aplicación para importar archivo de texto especial

NotaPublicado: Sab Mar 15, 2014 8:07 pm
por SLV-es
Gracias PepeOOoSevilla por compartir con todos tu trabajo, y como tantas otras veces, de nuevo gracias por tus tan acertadas colaboraciones.

Un abrazo.