• Publicidad

Crear programa Perl que lea archivos Excel

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Re: Crear programa Perl que lea archivos Excel

Notapor explorer » 2013-03-06 11:01 @500

Te lo está diciendo el propio mensaje de error: estás intentando abrir un archivo cuyo nombre contiene una carácter de nueva línea. Y seguro que el archivo original no lo tiene.

Esto es debido a que el ls devuelve una serie de líneas, una por cada archivo *.xls. El awk se queda con el último valor, que es el nombre del archivo, pero además, incluye el carácter de nueva línea que hay al final de las líneas que genera ls.

La solución es quitar ese o esos caracteres.

Agrega chomp() justo después de la operación del ls:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. chomp $xls;
  2. print "$xls\n";
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Mucho mejor si haces toda la operación con Perl:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my @xls = <*.xls>;                       # listado de todos los xls
  2. @xls = sort { -M $a <=> -M $b } @xls;    # los ordenamos según su antigüedad (el más moderno, primero)
  3. my $xls = $xls[-1];                      # nos quedamos con el último (el xls más viejo)
  4. my %con_tdm = configuracion->conexion_tandemD();        # hash de conexión
  5. my $ref = ReadData($xls, cell => 0, atrr => 1)          # lectura del xls
  6.        or die "ERROR: xls no encontrado\n";
  7.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Con esta solución no necesitas hacer chomp(), ya que el operador diamante nos devuelve solo nombres de los archivos, sin nada más.
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

Publicidad

Re: Crear programa Perl que lea archivos Excel

Notapor elistraus » 2013-03-06 12:44 @572

Hummm, no me dí cuenta y eso que en la salida del error estaba la variable con el salto de línea :roll:

Pero, ¡¡¡muuuchas gracias!!! :mrgreen: Me sirvió y de hecho probé las dos soluciones y me quedé con la que tu me recomiendas así se ve más elegante :mrgreen:

Gracias, explorer, una vez más.

Un saludos desde Chile
elistraus
Perlero nuevo
Perlero nuevo
 
Mensajes: 37
Registrado: 2011-10-31 23:37 @026

Anterior

Volver a Básico

¿Quién está conectado?

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