Página 1 de 1

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

NotaPublicado: 2017-01-04 16:33 @731
por coltx
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.008 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.

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

NotaPublicado: 2017-01-04 16:58 @748
por explorer
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.006 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.

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

NotaPublicado: 2017-01-05 11:25 @517
por coltx
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.008 segundos, usando GeSHi 1.0.8.4


Me ha resultado a la perfección. Muchas gracias por guiarme una vez más.

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

NotaPublicado: 2017-01-05 15:30 @688
por explorer
Me parece que algo anda mal... ese foreach() de solamente UN elemento... no me suena bien.