• Publicidad

xls a txt, problemas de lectura

Aquí encontrarás todo lo que sea específicamente acerca de módulos de Perl. Ya sea que estás compartiendo tu módulo, un manual o simplemente tienes una duda acerca de alguno.

xls a txt, problemas de lectura

Notapor keparodo » 2012-01-06 16:41 @737

Hola. Necesito leer una serie de archivos (cualquier extensión) y generar archivos txt a partir de ellos. Antes cada registro del archivo leído debe ser insertado en una tabla.

Estaba leyendo xls y generando el txt respectivo sin problemas, pero ahora me ha surgido un error que hace que se caiga mi aplicación.

Por algún motivo, ahora el archivo xls (que quiero abrir desde un ftp, al hacer doble clic sobre él en el File Transfer Window de SSH), me avisa con una caja de diálogo, que el archivo está en uso y debe ser abierto solo en modo escritura.

Lamentablemente, no tengo el archivo abierto, tampoco otra aplicación. Cambié sus permisos a 775, cambié el owner a nobody, pero aún así me aparece este dialogo.

El problema surge porque no se me cae la lectura del archivo, y la aplicación asume el dialogo para leer la primera línea y ahí es donde el código se enreda porque lee basura y al querer grabar en la tabla, me aparece una línea del estilo

VALUES (SEQ_ID_REG.nextval, 29,UPPER('ÐÏࡱa ...

lo que me da error en el insert.

No se en qué más debo fijarme. ¿Alguna luz, por favor?
¿Alguna otra manera de transformar xls a txt?

Gracias.
keparodo
Perlero nuevo
Perlero nuevo
 
Mensajes: 21
Registrado: 2011-12-14 17:17 @762

Publicidad

Re: xls a txt, problemas de lectura

Notapor explorer » 2012-01-06 17:19 @763

El problema está en que aún sigues usando Windows.

Este sistema operativo se empeña en vigilar qué aplicación abre qué archivo. Si te dice que ese archivo está en uso, es que lo está. Y no importa los permisos que le pongas en el lado del servidor. Lo que cuenta es quién lo está viendo en ese momento.

Cuando haces el doble clic para bajártelo por FTP, ¿no estará el antivirus analizando el archivo, en ese preciso momento? Podría ser incluso el propio programa de FTP, alguna copia que haya quedado en memoria.

Si bajas el archivo desde el servidor a un directorio local, y de allí lo mandas al programa, ¿te sale el mensaje de error?

Existen utilidades para Windows (no incluidas de base, por supuesto) que funcionan como el lsof de Linux, y te pueden decir qué aplicación está husmeando en ese archivo.

No conozco mucho del comportamiento de Perl en Windows, pero sé que el lenguaje tiene algunos controles para saber si puede o no leer un archivo: la comprobación '-r', un fallo en el open()...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: xls a txt, problemas de lectura

Notapor keparodo » 2012-01-10 16:26 @726

Finalmente, el problema se daba porque no estaba leyendo correctamente el nombre del archivo.

Al tomar el archivo del ftp (archivo depositado con cualquier nombre, espacios, caracteres especiales y otros) no podía dejarlo en mi local con el mismo nombre pues al tener espacios genera tantos archivos como espacios tenga el nombre, por lo que tenía que limpiar el nombre y al moverlo al directorio local lo hacía con otro nombre. Al querer abrir el archivo estaba abriendo uno que no existía y esa era la línea que me arrojaba en el insert.

Gracias por sus sugerencias.
keparodo
Perlero nuevo
Perlero nuevo
 
Mensajes: 21
Registrado: 2011-12-14 17:17 @762


Volver a Módulos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados