Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Extraer datos de fichero texto y meterlo en una matriz

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico
Mensaje Vie Mar 17, 2006 10:13 am
leinov
Perlero Nuevo
Perlero Nuevo
Registrado: 17 Mar 2006
Mensajes: 2
Extraer datos de fichero texto y meterlo en una matriz Responder citando

Muy wenas, quiero hacer una cosa en Perl pero no doy con ello, hay un post un poco más abajo pero no hace exactamente lo que yo quiero.

Yo tengo un archivo de texto con nombres, todos separados un por salto de línea, lo que quiero es leer el fichero desde Perl y meter todos estos datos en una matriz, para yo poder luego utilizarlos.

Tambien me gustaria saber como puedo hacer para que atraves de un bucle for, del 1 al 10 por ejemplo, me ejecute a medida que vaya incrementando hacer un print con el valor de la matriz, la posicion de la matriz seria la del contador.

Gracias por todo, siento si esto es muy basico Embarassed
Mensaje Vie Mar 17, 2006 11:25 am
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
Responder citando

Hola:

Bienvenido al foro, y no te preocupes, no hay pregunta demasiado básica para nosotros Wink

Dígamos que tienes un archivo con los siguientes datos:

Código:

Alberto
Pepe
Juan
Uriel
Pedro
Joaquin
Gonzalo
Ezequiel
Pablo
Roberto
Jorge
Tomas
Jesus
Ruben
Juda
Daniel
Samuel


Entonces, lo que vamos a hacer es leer el archivo, ordenar los nombres por alfabeto y mostrarlos por pedazos.


Primero abrimos el archivo y guardamos todo el contenido en un array ordenado de manera alfabetica:

Código:

open my $file, '<', 'archivo_nombres.txt' or die("No se pudo abrir el archivo");
my @nombres = sort <$file>;
close $file;


Ya tenemos todos los nombres guardados en nuestro array @nombres. Ahora vamos a crear dos variables con los contadores:

Código:

my $objetos_por_pagina = 10;
my $contador_inicial = 0;


La primera variable "$objetos_por_pagina" nos sirve para saber cuantos objetos debemos desplegar iniciando desde el "$contador_inicial". Por ejemplo, con los valores que tiene ahora, veríamos los nombres del 0 al 10.

Ya con eso ahora vamos a imprimir los nombres:

Código:

my $num = $contador_inicial;

    for ($contador_inicial..($contador_inicial+$objetos_por_pagina)){
        print "$num: $nombres[$num]\n";
        $num++;     
    }



Y listo, de manera sencilla abrimos el archivo con nombres y los desplegamos por partes.

El código completo:

Código:

#!/usr/bin/perl -w

use strict;


open my $file, '<', 'archivo_nombres.txt' or die("No se pudo abrir el archivo");
my @nombres = sort <$file>;
close $file;


my $objetos_por_pagina = 10;
my $contador_inicial = 0;


my $num = $contador_inicial;

    for ($contador_inicial..($contador_inicial+$objetos_por_pagina)){
        print "$num: $nombres[$num]\n";
        $num++;
    }



Saludos
Mensaje Vie Mar 17, 2006 1:06 pm
leinov
Perlero Nuevo
Perlero Nuevo
Registrado: 17 Mar 2006
Mensajes: 2
Responder citando

Joer es perfecto, muchisimas gracias por la ayuda!
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group