• 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.

Notapor creating021 » 2009-04-20 14:51 @660

Probablemente porque has olvidado usar chomp para cortar el fin de línea ("\n" o "\r\n" en Windows).
Cambia
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $SERVER = <STDIN>;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

por
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
chomp( my $SERVER = <STDIN> );
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

y
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $tipo = <STDIN>;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

por
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
chomp( my $tipo = <STDIN> );
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
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

Publicidad

Guardar Archivos en una carpeta

Notapor wastudillo » 2009-04-21 10:31 @479

¡Hey! Muchas gracias ya me funcionó a la perfección...

Necesito saber si es posible guardar los archivos que bajo por FTP a una ruta o carpeta definida o en el mejor de los casos que la cree, si es posible sería de gran ayuda, muchas gracias.
wastudillo
Perlero nuevo
Perlero nuevo
 
Mensajes: 16
Registrado: 2009-04-14 22:21 @972

Notapor explorer » 2009-04-21 10:49 @492

El nombre del fichero local en donde quieres guardar el fichero que te bajas con FTP, lo puedes indicar como segundo parámetro del método get().

Si no existe el directorio donde quieres guardarlo, debes antes crearlo con mkdir().
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Mostrar opciones del programa

Notapor wastudillo » 2009-04-28 06:35 @316

Hola, ¿qué tal? Esta vez quiero molestarlos por la siguiente inquietud: necesito saber de qué manera puedo mostrar nuevamente el menú y no salir del programa hasta que seleccione la opción 4. Gracias.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $name = 'ftp';
my $pass = 'ftp';
my $barrera = 'bca';
my $pswbarrera = 'bca';

print "--------SELECIONE UNA OPCION---------\n\n";
print "1 Todos los archivos\n";
print "2 Archivo individual\n";
print "3 Mostrar los archivos del dispositivo\n";
print "4 Salir";


chomp(my $opcion = <STDIN>);
print "--------DIGITE IP------------\n\n";
chomp(my $SERVER = <STDIN>);
print "--------TIPO DISPOSITIVO-------\n";
chomp(my $tipo = <STDIN>);
#  my $f = split("/./$archivos[9]");
#                print "serial $f\n";


if ($opcion eq '1')
   {
        if ($tipo eq 'tca')
        {
                my $FTP = Net::FTP->new($SERVER) or die ("No se puede abrir la conexion");
                $FTP->login($name,$pass);
                $FTP->binary ();
                $FTP->hash ();
                my @archivos = $FTP->ls();
                foreach my $archivo (@archivos){
                $FTP->get($archivo);
                print "$archivo\n";
                }
                $FTP->quit();
        }
        elsif($tipo eq 'bca')
                {
                my $FTP = Net::FTP->new($SERVER) or die ("No se puede abrir la conexion");
                $FTP->login($barrera,$pswbarrera);
                $FTP->binary ();
                $FTP->hash ();
                $FTP->cwd("/files/tmp");
                my @archivos = $FTP->ls();
                foreach my $archivo (@archivos){
                $FTP->get($archivo);
                print "$archivo\n";
                }
                $FTP->quit();
        }
        else {
        print "dispositivo no valido\n";
        }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
wastudillo
Perlero nuevo
Perlero nuevo
 
Mensajes: 16
Registrado: 2009-04-14 22:21 @972

Notapor explorer » 2009-04-28 07:22 @349

Metes todas las sentencias que se repiten en un bucle que compruebe la condición:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $opcion = 0;
while ($opcion != 4) {
    # leer $opcion desde el teclado
    # actuar
    # ...
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Ejecutar un programa desde PL

Notapor wastudillo » 2009-04-28 08:20 @389

Hola, muchas gracias por la respuesta. Me pongo en la tarea de hacerlo ya mismo. ¡Una pregunta! ¿Se puede ejecutar un programa cualquiera desde un programa desarrollado en PL? Por ejemplo, que dentro de una instrucción yo necesite que abra Word. No sé si será posible pero por eso le pido su ayuda. Gracias.
wastudillo
Perlero nuevo
Perlero nuevo
 
Mensajes: 16
Registrado: 2009-04-14 22:21 @972

Notapor explorer » 2009-04-28 10:39 @485

¿PL?

¿Qué es eso? ¿Te refieres al lenguaje de programación PL/1, o los lenguajes de base de datos de Oracle PL/SQL o de PostgreSQL (PL/PgSQL)?

Aquí, en Perl, usamos la función system(), las comillas invertidas (``) o el operador qx() y varios métodos más para arrancar programas.

Más información en perldoc perfunc y perldoc perlop.

En concreto, para Windows, hay diversas soluciones según lo que quieras hacer. Por ejemplo, en esta página tienes un ejemplo para transformar cada fichero de un directorio a fichero HTML. Usa el método de usar el protocolo OLE para intercambiar información entre aplicaciones Windows.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Mostrar ventana emergente

Notapor wastudillo » 2009-05-13 10:25 @476

¿Qué tal? Nuevamente para molestarlos. Quisiera saber de qué manera o por medio de qué método puedo hacer que los mensajes de error o confirmación de una acción en un aplicativo de Perl se muestre en una pequeña ventana de Windows donde yo solamente tenga que darle aceptar para cerrarla después de leer el mensaje. Gracias.
wastudillo
Perlero nuevo
Perlero nuevo
 
Mensajes: 16
Registrado: 2009-04-14 22:21 @972

Notapor proxy_lainux » 2009-05-13 18:05 @795

Hola.

¿Por qué no intentas hacer eso haciendo una ventana con Gtk, por ejemplo? Si hay un momento donde me aparece un error, usa Gtk2::Window para crear una ventana y coloca el mensaje allí, y si presionas un botón que haga algo, en el caso de que el mensaje sea para alguna acción.

salu2
proxy_lainux
Perlero nuevo
Perlero nuevo
 
Mensajes: 30
Registrado: 2009-04-13 21:38 @943

Notapor explorer » 2009-05-13 18:22 @807

wastudillo: es mejor empezar hilos nuevos, sobre todo si no tienen que ver con el título y tema del hilo actual.

En cuanto a lo que quieres, creo que se puede resolver con una simple caja de alerta. Con el módulo Win32::GUI se puede hacer.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
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 4 invitados