Página 2 de 4

NotaPublicado: 2009-04-20 14:51 @660
por creating021
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

Guardar Archivos en una carpeta

NotaPublicado: 2009-04-21 10:31 @479
por wastudillo
¡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.

NotaPublicado: 2009-04-21 10:49 @492
por explorer
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().

Mostrar opciones del programa

NotaPublicado: 2009-04-28 06:35 @316
por wastudillo
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

NotaPublicado: 2009-04-28 07:22 @349
por explorer
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

Ejecutar un programa desde PL

NotaPublicado: 2009-04-28 08:20 @389
por wastudillo
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.

NotaPublicado: 2009-04-28 10:39 @485
por explorer
¿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.

Mostrar ventana emergente

NotaPublicado: 2009-05-13 10:25 @476
por wastudillo
¿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.

NotaPublicado: 2009-05-13 18:05 @795
por proxy_lainux
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

NotaPublicado: 2009-05-13 18:22 @807
por explorer
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.