Página 1 de 2

Mi programa Perl funciona en Windows XP pero no en Windows 7

NotaPublicado: 2012-08-30 09:44 @447
por emir_perl
Hola,

Quisiera que, por favor, me ayuden.

Tengo un programa Perl que se conecta a una base de datos y me baja información a un archivo Excel. Este me funciona perfectamente en Windows XP pero lo corro en cualquier equipo con Windows 7 y no funciona :cry: No sé si es por el Windows y/o procesos, Excel o configuración del sistema.

Básicamente en Windows 7 me deja ingresar el campo a consultar de la base de datos y cuando intenta bajar la información al Excel no pasa nada (la conexión de la Oracle está perfecta). El Excel no se cierra ni me advierte nada :(

El error que saca es: Died at programa.pl line 265, <stdin> line 1.

¡Gracias!

Re: Mi programa Perl funciona en Windows XP pero no en Windo

NotaPublicado: 2012-08-30 10:16 @469
por explorer
Bienvenido a los foros de Perl en Español, emir_perl.

¿Y qué es lo que hay en la línea 265 de programa.pl.

Es que, a ciegas, es difícil de acertar...

Re: Mi programa Perl funciona en Windows XP pero no en Windo

NotaPublicado: 2012-08-30 11:25 @518
por emir_perl
¡¡¡Gracias!!!

En la línea está

$workbook -> SaveAs($DirAct."/documento.xls") or die $!;

Cabe aclarar que los sistemas en los que estoy probando son de Win32.

Re: Mi programa Perl funciona en Windows XP pero no en Windo

NotaPublicado: 2012-08-30 12:02 @543
por hreyes
Hola.

Pues dice que muera si no encuentra el directorio :S ¿Te aseguraste de que exista o que tenga la extensión correcta?

Re: Mi programa Perl funciona en Windows XP pero no en Windo

NotaPublicado: 2012-08-30 12:07 @547
por explorer
Pues... poco se puede decir...

El error sale porque no ha podido realizar la operación de grabación del archivo documento.xls.

¿Qué módulo estás usando para crear el XLS?

Re: Mi programa Perl funciona en Windows XP pero no en Windo

NotaPublicado: 2012-08-30 15:19 @680
por emir_perl
Son estos los que uso:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use OLE;
  2. use DBI;
  3. use Cwd;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


En realidad, haciendo un debug del programa, veo que realiza el proceso y no se está guardando por algún motivo en Windows 7, o será Excel.

Re: Mi programa Perl funciona en Windows XP pero no en Windo

NotaPublicado: 2012-08-30 17:40 @777
por explorer
Como dice hreyes, ¿has comprobado que $DirAct contiene un valor correcto?

Con solo una línea, no veo nada raro. Lo extraño es que no dé más información. ¿No se puede activar el debug con el OLE?

¿Y mirando en los registros de actividad de Windows? Es más: ¿Windows 7 tiene registros de actividad?

Re: Mi programa Perl funciona en Windows XP pero no en Windo

NotaPublicado: 2012-09-03 09:39 @444
por emir_perl
¡Gracias!

Bueno, creo que ya identifiqué el problema, y es la forma de identificar la ubicación del archivo, en el programa lo tenía de la siguiente forma:

$file= $DirAct."\Archivo_$fecha{$br}.xls";

donde $DirAct es la forma de obtener la dirección (getcwd).

El problema es que esa dirección me trae algo así: C:/New folder/carpeta.\archivo_$fecha{$br}.xls y por esos '/' no me dejan guardar los archivos, pero si llamo la dirección completa C:\\New folder\\carpeta\\Archivo_$fecha{$br}.xls sí lo guarda, perfectamente.

Pero la idea no es dejar que se ejecute ese programa solamente en C: sino en cualquier dirección, por ello el $DirAct, entonces estoy tratando de conseguir una forma de que esa dirección me permita guardar....

Re: Mi programa Perl funciona en Windows XP pero no en Windo

NotaPublicado: 2012-09-03 09:57 @456
por explorer
En los Windows modernos (desde hace ya bastantes años), se puede usar el delimitador '/' en las rutas de los directorios, para que sean iguales que en UNIX. En el entorno MSDOS y Windows seguirás viendo en pantalla los '\', pero a nivel de Perl puedes usar '/', así que la línea anterior la puedes escribir como

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$file= $DirAct."\\Archivo_$fecha{$br}.xls";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

o mejor
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$file = $DirAct."/Archivo_$fecha{$br}.xls";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

o incluso
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$file = "$DirAct/Archivo_$fecha{$br}.xls";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Re: Mi programa Perl funciona en Windows XP pero no en Windo

NotaPublicado: 2012-09-04 12:01 @542
por emir_perl
Gracias.

Ese es el problema: que con ninguno de esos funciona, a menos que yo quite el $DirAct y ponga la ruta completa c:\\carpeta\\carpeta\\archivo.xls, pero, evidentemente de esa manera no es una solución debido a que no siempre va a ser C:.