• Publicidad

Leer un parte de un archivo de texto

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

Leer un parte de un archivo de texto

Notapor issen » 2006-12-06 09:54 @454

Hola.
Tengo un problema.
Quisiera saber cómo realizar una búsqueda en un archivo de texto, y a partir de allí llevar una determinada cantidad de líneas a una hash.
Espero que me puedan ayudar
issen
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2006-12-06 09:05 @420

Publicidad

Notapor monoswim » 2006-12-06 10:48 @492

lo puedes ir analizando línea por línea...

Código: Seleccionar todo
my %hash;
my $num = 0;

open (FILE,"file.txt");
while(my $linea = <FILE>){
   if (la línea me interesa){
      $hash{$num} = $linea;
      $num++;
   }
}


Espero que te sirva

Saludos
MonoSwim
Perl Programming Language
Avatar de Usuario
monoswim
Perlero nuevo
Perlero nuevo
 
Mensajes: 452
Registrado: 2003-11-18 16:13 @717
Ubicación: Buenos Aires

si me sirve gracias ,pero

Notapor issen » 2006-12-07 11:14 @510

bueno pues si me sirve muchas gracias, aunque ya hice algo parecido esto parece ser más corto, pero lo que en realidad estoy buscando ahora es encontrar una linea especifica y procesar esa línea

Por ejemplo, si tengo
Código: Seleccionar todo
1234567 => yussen,,,,attach=no|saycid=no|envelope=no|delete=no
y como esta línea muchas y busco un número en especifico (osea el número antes del =>) por ejemplo si quisiera el 1254261, si bien ya encontré una solución que es procesar línea por línea, convertir cada línea en un arreglo al momento de procesar y verificar si $myarreglo[0] es el número que me interesa, pues tengo problemas cuando el => se encuentra pegado al número, osea 7474545=>. ¿Qué puedo hacer para que considere las dos opciones al momento de hacer el split? Osea, cuando entre el número y el igual existe espacio(1232145 =>) y cuando no existe (12458=>).

Apreciaría mucho si me dieran una solución o alguna otra alternativa.
De antemano muchas gracias.
issen
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2006-12-06 09:05 @420

Notapor explorer » 2006-12-07 12:42 @571

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
while(my $linea = <FILE>) {
   if ($linea =~ /^$numero/ ){
      # Tratamos la línea que empieza por ese $numero
      #...
      last;
   }
}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Si vas leyendo línea a línea, sólo tienes que ver si la línea comienza (^) por el $numero que estás buscando (usamos una expresión regular).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

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