Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Leggere un file di testo al contrario

    Devo leggere un file di testo dall'alto verso il basso, cioè dall'ultima riga alla prima.
    Ho cercato un pò in giro e l'unica suggerimento che ho trovato è quello di usare la funzione "reverse", e cioè aprire il file e associarlo ad un array in questo modo:

    @righe=reverse (<FILE>); #in questo modo ho il file al contrario all'interno dell'array

    ma essendo il file composto da circa 1000 righe, allora la memoria va in overflow, quindi non mi resta che tentare un altra strada.
    qualche suggerimento?

  2. #2
    Usa i moduli: Tie::File

    che trovi su http://search.cpan.org

    come detto qua sotto:

    Tie::File represents a regular text file as a Perl array. Each element in the array corresponds to a record in the file. The first line of the file is element 0 of the array; the second line is element 1, and so on.

    The file is not loaded into memory, so this will work even for gigantic files.

    Changes to the array are reflected in the file immediately.

    è molto adatto a grandi files poichè adotta una gestione della memoria.

    Poi potrai leggerlo al contrario usando il ciclo for, ad esempio:

    for ($i = $#array; $i > 0; $i--) {
    $array[$i]
    }
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  3. #3
    ho risolto usando il modulo

    File::Readbackwards;

    in questo modo precisamente:

    # Apriamo il file di log leggendolo dal basso verso l'alto
    $bw = File::ReadBackwards->new( $ARGV[0] ) or die "can't read 'log_file' $!" ;

    #while( defined( $log_line = $bw->readline ) ) {
    # print $log_line ;
    # }
    in questo modo stampa le righe del file dall'ultima alla prima.
    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.