Página 1 de 1

Muestra solo el que tiene mayor número de líneas

NotaPublicado: 2012-02-01 11:50 @535
por alesevimor
De los ficheros que se pasan como argumento, muestra el contenido solo del que tiene
mayor número de líneas.

Es decir: alejandroubuntu@alejandroubuntu:~$ ejercico.pl argumento1 argumento2 argumento3...

argumento1: ggggggggggggg
jjjjjjjjjjjjj

argumento2: ggggggggggggg

argumento3: rrrrrrrrrrrrr
eeeeeeeeeeeee
qqqqqqqqqqqqq

Debe mostrar solo el contenido del fichero argumento3.

Gracias ;)

Re: Muestra solo el que tiene mayor número de líneas

NotaPublicado: 2012-02-01 12:33 @564
por explorer
No es necesario que pongas ¡Ayuda! en los títulos de los mensajes.

Si la pregunta no tiene que ver con Administración, por favor, colócala en el foro correspondiente (Básico, Intermedio, Avanzado, etc).

No nos pones nada de código, así que no sabemos dónde tienes el problema.

Re: Muestra solo el que tiene mayor número de líneas

NotaPublicado: 2012-02-01 12:46 @573
por alesevimor
¡Ok! he pensado que este tema estaba orientado a la Administración. Y no te he puesto código porque no sé cómo plantearlo.

Re: Muestra solo el que tiene mayor número de líneas

NotaPublicado: 2012-02-01 16:04 @711
por explorer
Pues una forma de hacerlo, sería hacer un bucle por todos los argumentos (@ARGV). En cada argumento, lo abres, y lees todas las líneas (por ejemplo, en un array. El número de líneas será igual al número de elementos del array). Después de leerlo, compruebas si el número de líneas supera al récord actual (otra variable escalar que lleva el número de líneas del fichero más grande). Si es así, actualizas el récord y guardas el contenido del fichero en otro array (que es el que almacena el contenido del fichero más grande hasta ahora encontrado). Cuando termines todo el bucle principal, solo tienes que pintar ese último array.

¡Adelante!

Re: Muestra solo el que tiene mayor número de líneas

NotaPublicado: 2012-02-02 08:22 @390
por alesevimor
Llevo intentándolo un rato y sigo sin saber por dónde cogerlo. Gracias de todos modos.

Re: Muestra solo el que tiene mayor número de líneas

NotaPublicado: 2012-02-02 08:31 @396
por explorer
Si nos muestras el código, te diremos si vas bien o no.

Re: Muestra solo el que tiene mayor número de líneas

NotaPublicado: 2012-02-07 14:13 @634
por alesevimor
A partir de aquí no sé cómo seguir.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. for ( $i = 0; $i <= $#ARGV; $i++ ) {
  2.     $contador = 0;
  3.     open( F1, "$ARGV[$i]" ) or die "No existe el fichero";
  4.     while ( $linea = <F1> ) {
  5.         print $linea;
  6.     }
  7.  
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4

Re: Muestra solo el que tiene mayor número de líneas

NotaPublicado: 2012-02-07 15:13 @676
por explorer
Pues ya casi lo tienes...
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $maximo = 0;
  2. $fichero_grande = $ARGV[0];              # por defecto, el primero
  3. for ( $i = 0; $i <= $#ARGV; $i++ ) {
  4.     $contador = 0;
  5.     open( F1, $ARGV[$i] ) or die "No existe el fichero: $!\n";
  6.     while ( $linea = <F1> ) {
  7.         $contador++;
  8.     }
  9.     close F1;
  10.     if ($maximo < $contador) {           # ¿tenemos un nuevo récord?
  11.         $maximo = $contador;
  12.         $fichero_grande = $ARGV[$i];
  13.     }
  14. }
  15. open(F1, $fichero_grande);
  16. while (<F1>) {
  17.     print;
  18. }
  19. close F1;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Re: Muestra solo el que tiene mayor número de líneas

NotaPublicado: 2012-02-07 15:27 @685
por alesevimor
Muchas gracias, ¡ahora lo entiendo! Me queda mucho que practicar ¡je,je!