Vie Mar 17, 2006 10:13 am
|
 |
leinov
Perlero Nuevo

|
Registrado: 17 Mar 2006
Mensajes: 2
|
|
| Extraer datos de fichero texto y meterlo en una matriz |
|
|
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  |
|
|
|

Vie Mar 17, 2006 11:25 am
|
 |
kidd
Creador de Perl en Español

|
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
|
|
|
|
|
Hola:
Bienvenido al foro, y no te preocupes, no hay pregunta demasiado básica para nosotros
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 |
|

Vie Mar 17, 2006 1:06 pm
|
 |
leinov
Perlero Nuevo

|
Registrado: 17 Mar 2006
Mensajes: 2
|
|
|
|
|
| Joer es perfecto, muchisimas gracias por la ayuda! |
|
Powered by phpBB © 2001, 2005 phpBB Group
|