• Publicidad

Extraer todos los archivos de un directorio por FTP

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Mostrar mensaje de error en ventana

Notapor wastudillo » 2009-05-26 07:09 @339

Hola, ¿qué tal?

Gracias por el interés pero la verdad no entendí mucho lo que me dicen; además coloco GTk2::Window y me sale un error pero quisiera explicarles un poco mejor lo que necesito.

Por ejemplo, cuando estoy extrayendo un archivo por FTP y el programa no encuentra dicho archivo entonces me debe mostrar una pequeña ventana indicándome el mensaje de error (o también de confirmación) por mí especificado; el usuario solamente debe hacer clic en OK por ejemplo y se cierra la ventana de tal manera que el usuario tenga tiempo de ver el error antes de que el programa termine y se cierre automáticamente.

No sé si será mucho pedir pero aquí les muestro un pedazo del programa y dónde necesito que muestre la ventana:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $FTP = Net::FTP->new($SERVER) or die ("No se puede abrir la conexión");# aquí también
$FTP->login($name,$pass);
$FTP->binary ();
$FTP->hash ();
my @archivos = $FTP->ls();
foreach my $archivo (@archivos){
    $FTP->get($archivo);
    print "Archivo $archivo copiado\n"; # este es el mensaje
}
$FTP->quit();
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Muchas gracias.
wastudillo
Perlero nuevo
Perlero nuevo
 
Mensajes: 16
Registrado: 2009-04-14 22:21 @972

Publicidad

Notapor creating021 » 2009-05-26 19:19 @846

proxy_lainux escribiste:¿Por qué no intentas hacer eso haciendo una ventana con Gtk, por ejemplo?

Porque instalar GTK2 requiere instalar Gtk+, Pango, Glib, Cairo y otras cosas... que Windows no trae, yo usaría otra librería como la que dice explorer (Win32::GUI) o Prima, ya que tiene menos dependencias.
wastudillo escribiste:coloco GTk2::Window y me sale un error

GTk2 != GTK2
Suponiendo que ese es el error, ya que no lo comentas.

Bien, el asunto es que sí se puede hacer, y es muy simple:
Primero creamos una función que imprima el diálogo, ésta deberá recibir un argumento... el mensaje (de error o de confirmación).


Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
# use Prima qw(Application MsgBox);
sub MiDialogo {
    my $msg = shift; # argumento.
    Prima::MsgBox::message($msg, mb::Ok);
}
 
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Luego, en el código que tenías, agregamos algo.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $FTP = Net::FTP->new($SERVER) or die ("No se puede abrir la conexión");# aquí también
$FTP->login($name,$pass);
$FTP->binary ();
$FTP->hash ();
my @archivos = $FTP->ls();
foreach my $archivo (@archivos){
    $FTP->get($archivo) or do {
        MiDialogo( $FTP->message() );
        next; # Seguimos con el siguiente elemento del bucle
    };
    MiDialogo( "Archivo $archivo copiado" );
    print "Archivo $archivo copiado\n"; # este es el mensaje
}
$FTP->quit();
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Es una forma simple y rápida... que se puede mejorar :wink:
Expect the worst, is it the least you can do?
Avatar de Usuario
creating021
Perlero frecuente
Perlero frecuente
 
Mensajes: 595
Registrado: 2006-02-23 16:17 @720
Ubicación: Frente al monitor

Mostrar mensaje confirmación o error en una ventana

Notapor wastudillo » 2009-05-27 06:38 @318

Buenos días.

Les comento que me sale el siguiente error y no pude ver el funcionamiento del código, y otra cosa: no sé si lo estoy haciendo bien. En el lugar donde necesito que me salga el mensaje simplemente coloco algo como esto MiDialogo ("mensaje de error o confirmacion"); ¿O requiere de algo más?

Este es el mensaje de error:

Código: Seleccionar todo
Can't locate Prima.pm in @INC (@INC contains: C:/Perl/lib C:/Perl/site/lib .) at extraer_archivos.pl line 10.
BEGIN failed--compilation aborted at extraer_archivos.pl line 10.


Muchas gracias por la ayuda.
wastudillo
Perlero nuevo
Perlero nuevo
 
Mensajes: 16
Registrado: 2009-04-14 22:21 @972

Notapor explorer » 2009-05-27 06:49 @325

El error dice que Perl no es capaz de encontrar el módulo Prima, así que entonces suponemos que no está instalado.
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

Módulo prima

Notapor wastudillo » 2009-05-27 13:32 @606

Perdón por la ignorancia, ¿cómo lo instalo?
wastudillo
Perlero nuevo
Perlero nuevo
 
Mensajes: 16
Registrado: 2009-04-14 22:21 @972

Notapor explorer » 2009-05-27 13:44 @614

Depende del sistema operativo y de la distribución Perl que estés usando.
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

instalacion modulo prima

Notapor wastudillo » 2009-05-28 06:29 @312

Que tal buenos dias: ingreso a la pagina del modulo prima y descargo el archivo .gz pero no encuentro como instalarlo, mi sistema operativo es windows xp y perl es la 2.5.

Gracias
wastudillo
Perlero nuevo
Perlero nuevo
 
Mensajes: 16
Registrado: 2009-04-14 22:21 @972

Notapor explorer » 2009-05-28 08:35 @399

Pero no nos has dicho qué distribución usas.

Si estás en Windows, quizás estés usando la distribución Perl de la empresa ActiveState.

Aquí tienes un hilo que te explica cómo instalar módulos con PPM.
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

Instalar módulos en Perl

Notapor wastudillo » 2009-05-28 16:45 @740

Perdón, tiene razón. La versión es ActiveState ActivePerl 5.6 pero lo que sucede es que no tengo una conexión a Internet porque es un aplicativo que estoy desarrollando en la empresa que trabajo y me toca hacerlo de esta manera. Entonces si tengo que instalarlo debo de hacerlo de una manera que no requiera Internet.
wastudillo
Perlero nuevo
Perlero nuevo
 
Mensajes: 16
Registrado: 2009-04-14 22:21 @972

Notapor explorer » 2009-05-28 17:02 @751

Ese ActivePerl es del siglo pasado.

¿Una empresa que no permite bajar módulos Perl desde Internet? Entonces tampoco permitirá usar librerías Java, C, o algo peor, ni siquiera arrancar PHP.

Estás perdiendo el tiempo ahí. Tu carrera profesional está sufriendo un retraso.

Si aún persistes en vivir de esa manera, aquí tienes un método para hacerlo.

Una empresa que no tiene conexión a Internet está en clara desventaja frente a la competencia. A esa empresa le queda poco tiempo de vida. Empieza a buscar otra empresa...

deprisa...

empieza a buscarla YA.
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

AnteriorSiguiente

Volver a Intermedio

¿Quién está conectado?

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