• Publicidad

Acotar columna

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

Acotar columna

Notapor charly » 2008-09-30 13:26 @601

Hola amigos del foro. Soy nuevo en esto de Perl y me han llagado excelentes comentarios de uds., así que decidí registrarme ya que tengo una duda.

Tengo una lista que les muestro un extracto:

Código: Seleccionar todo
2005 01 01 01 13.7
2005 01 01 02 13.9
   .       .    .   .      .
   .       .    .   .      .
   .       .    .   .      .
2005 12 31 23 14.5


en donde el orden de las columnas es el siguiente: año mes día hora y temperatura.

Lo que yo quiero es elegir un mes y un día cualquiera pero las horas van desde las 00 a las 23 y solo quiero elegir un rango de horas por ejemplo: elegir el mes de agosto, día 12 y que vaya entre las 00 y las 09 horas.

Y solo he hecho el siguiente script donde solo le pido que me elija el mes ocho y el día 12 pero me da todo el largo de las horas y no las que yo quiero y eso no sé cómo hacerlo.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl -w

open (IN, "<datos.dat");
open (OUT, ">agosto_docel.dat");

while($lineas=<IN>) {
    chop($lineas);
    @datos=split(" ",$lineas);
    if ($datos[1]==8 and $datos[2]==12) {
        print OUT "@datos\n";
    }
]

close (DATOS);
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4


Gracias amigos perlerosssssss
charly
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2008-09-30 13:03 @585

Publicidad

Notapor charly » 2008-09-30 13:29 @603

Me equivoqué en la parte donde esta el if ya que como ejemplo di el mes de agosto y el día 12 pero escribí 01 en vez de 8, sorry, solo fue un error de escritura.
charly
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2008-09-30 13:03 @585

Notapor explorer » 2008-09-30 13:47 @616

Bienvenido a los foros de Perl en Español, charly.

Primero, recordarte que puedes reeditar los mensajes pulsando en el botón de editar.

Y segundo, para que te salga el rango de horas que quieres, debes ampliar el if:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
if ($datos[1]==8 and $datos[2]==12 and $datos[3]>=0 and $datos[3]<=9) {
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Aparte, hay algunos pequeños errores.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl -w

open (IN,  "<datos.dat"       );
open (OUT, ">agosto_docel.dat");

while(my $linea = <IN>) {
    chop($linea);

    my @datos = split(" ",$linea);

    if ($datos[1] == 8 and $datos[2] == 12 and $datos[3]>=0 and $datos[3]<=9) {
        print OUT "@datos\n";
    }
}

close IN;
close OUT;
Coloreado en 0.002 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: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

TMTOWTDI

Notapor salva » 2008-10-01 06:57 @331

como TMTOWTDI:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
open (IN,  "<datos.dat"       );
open (OUT, ">agosto_docel.dat");

while(<IN>) {
    $_ ge '2005 08 12 00' and $_ lt '2005 08 12 10' and print OUT $_;
}

close IN;
close OUT;
 
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Avatar de Usuario
salva
Perlero nuevo
Perlero nuevo
 
Mensajes: 200
Registrado: 2008-01-03 15:19 @680

Notapor charly » 2008-10-01 10:21 @473

Gracias amigos del foro por la bienvenida y por sus respuestas, en realidad me he quedado sorprendido por su rapidez y por su aporte ya que me ayudaron a despejar mi duda y solucionar el problema. Muchas gracias.
charly
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2008-09-30 13:03 @585


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron