• Publicidad

Leer líneas de un archivo entre dos parámetros

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

Leer líneas de un archivo entre dos parámetros

Notapor coltx » 2017-01-04 16:33 @731

Hola, tengo el siguiente script para leer la información entre dos lineas desde un TXT pero, ¿cómo puedo hacer para ir leyendo cada línea que me entrega el script? Ya que me entrega la totalidad de las líneas, pero necesito recorrerlas...

Archivo TXT:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
INICIO
hola
como
estas
tanto
tiempo
FINAL
cuando
te
volveré
a ver
nuevamente
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!perl -w
  2.     use strict;
  3.     use autodie;
  4.  
  5.     open my $in,'<',"File1.txt";
  6.    
  7.     while(<$in>){
  8.     print $out $_ if /^INICIO/ .. /^FINAL/;
  9.     }
Coloreado en 0.007 segundos, usando GeSHi 1.0.8.4

me devuelve:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
inicio
hola
como
estas
tanto
tiempo
fin
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

y lo que necesito es ir recorriendo cada línea para ir asignando "hola", "como", "estas", etc. a distintas variables.
coltx
Perlero Nuevo
Perlero Nuevo
 
Mensajes: 70
Registrado: 2011-09-16 08:01 @376

Publicidad

Re: Leer líneas de un archivo entre dos parámetros

Notapor explorer » 2017-01-04 16:58 @748

Sólo tienes que cambiar el if():
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. if (/^INICIO/ .. /^FINAL/) {
  2.     # hacer aquí algo mágico con la línea almacenada en $_
  3. }
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4

Podrías procesarlas una a una, o meterlas en un array, y luego procesarlas todas de golpe... Depende de lo que quieras hacer.
JF^D Perl Programming
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 13883
Registrado: 2005-07-24 18:12 @800
Ubicación: Madrid, España

Re: Leer líneas de un archivo entre dos parámetros

Notapor coltx » 2017-01-05 11:25 @517

Gracias, explorer, lo he dejado de la siguiente forma. Por ejemplo si quiero tomar los primeros 8 caracteres del dato que está en la segunda línea de la sección capturada del archivo.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $i=0;
  2.  
  3. chomp($_);
  4. foreach($_)
  5. {
  6.   $i++;
  7.  
  8.    if($i==2)
  9.    {
  10.       $DATO1 =  substr $_, 8;
  11.    }
  12.  
  13. }
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4


Me ha resultado a la perfección. Muchas gracias por guiarme una vez más.
coltx
Perlero Nuevo
Perlero Nuevo
 
Mensajes: 70
Registrado: 2011-09-16 08:01 @376

Re: Leer líneas de un archivo entre dos parámetros

Notapor explorer » 2017-01-05 15:30 @688

Me parece que algo anda mal... ese foreach() de solamente UN elemento... no me suena bien.
JF^D Perl Programming
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 13883
Registrado: 2005-07-24 18:12 @800
Ubicación: Madrid, España


Volver a Básico

¿Quién está conectado?

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