Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Omar2
    Registrato dal
    Mar 2001
    Messaggi
    174

    Idea per ordinare dati in hash/array

    Ciao,

    ho un file in formato txt che contiene alcuni dati....

    es:

    |nome|cognome|età|
    |Mario|Rossi|50|
    |Giovanni|Bianchi|20|
    |Giuseppe|Verdi|35|

    Premettiamo che i dati che sono nel file contengono sempre la colonna "nome", "cognome" e "età" ma la loro posizione dela colonna può cambiare in modo casuale es:

    |cognome|età|nome|
    |Rossi|50|Mario
    |Bianchi|20|Giovanni
    |Verdi|35|Giuseppe|


    Ho scritto questo codice per poter ottenere sempre i dati che voglio semplicemente richiamando delle chiavi che corrispondono alla prima riga: |cognome|nome|età|



    open (COOIS, "810100016-10.txt");

    while (<COOIS>)

    {

    push(@ODL, $_);

    }

    $r_menu--;
    @chiave = split("\Q|", @ODL[$r_menu]);

    foreach $var (@chiave)

    {

    $var =~ s/^\s+|\s+$//g;
    @chiave[$indice] = $var;
    $indice++;

    }


    $r_menu = $r_menu + 2;
    splice (@ODL,0, $r_menu);
    pop (@ODL);

    foreach(@ODL)

    {

    @valore = split("\Q|", @ODL[$n_linea]);

    @tabella{@chiave}=@valore;

    print qq~

    $tabella{'nome'}
    $tabella{'cognome'}
    $tabella{'età'}



    $n_linea++;

    }



    ~;

    close (COOIS);
    Il codice che ho scritto funziona, a video vengono stampati i dati a seconda di come sono scritti nel file .txt

    Rossi
    Mario
    50

    Bianchi
    Giovanni
    20

    Verdi
    Giuseppe
    35

    Io vorrei visuliazzare questi gruppi in ordine per età dal più giovane al più vecchio, in questo modo:

    Bianchi
    Giovanni
    20

    Verdi
    Giuseppe
    35

    Rossi
    Mario
    50

    però non ho idea di come fare mi potete aiutare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    In pratica stai dicendo che hai un database in formato CSV, e ti vuoi costruire gli algoritmi per lavorare sul database stesso.
    Come dire che vuoi inventare l'acqua calda ...
    Non che sia sbagliato, ma rifare una cosa che esiste gia`, e` un po' una perdita di tempo. Inoltre l'efficienza di una libreria otimizzata non credo puoi raggiungerla con uno script.
    Il Perl ha vari moduli per gestire i DB. Quello che ti serve e` il modulo dbi::csv (o qualcosa di simile - lo ho usato qualche anno fa e non sono sicuro del nome).

    PS: gli hash non si possono ordinare. Si puo` ordinarne una stampa/output, ma non viene modificato l'ordine interno.
    Per l'ordinamento esiste il sort, che puo` far riferimento ad una routine scritta dall'utente.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di Omar2
    Registrato dal
    Mar 2001
    Messaggi
    174
    Ciao,

    sto provando ad installare i moduli Perl da CPAN tramite la shell del mio OSX ....

    relativi ai database e per creare PDF tipo PDF::API2

    faccio perl -MCAPN -e shell

    install nome::modulo

    lo scarica e lo installa ma quando fai all'interno dello script

    use nome::modulo;


    mi da error 500 sbaglio qualcosa?

    Grazie.

  4. #4
    Utente di HTML.it L'avatar di Omar2
    Registrato dal
    Mar 2001
    Messaggi
    174
    Che pirla che sono.....

    Mi da pure errore alla fine dell'installazione...


    Checking if your kit is complete...
    Looks good
    Writing Makefile for PDF::API2
    PDF::API2/0.69
    -- NOT OK
    Running make test
    Can't test without successful make
    Running make install
    make had returned bad status, install seems impossible


    Come mai?

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non ho mai installato moduli: ho sempre trovato pronto da parte dell'amministratore del server.

    Quello che riesco a capire e` che lo script di installazione non e` corretto (o non funziona con la tua configurazione): io ci leggo che non riesce a crearsi lo script make e quindi di conseguenza non compila il sorgente.

    Se lo script di install e` fatto bene, dovresti trovarci dei commenti, e forse delle linee da commentare/decommentare o qualche parametro da settare a seconda della tua configurazione.
    (nota: uno script install e` sempre in formato text, per cui e` facilmente leggibile e di solito contiene dei commenti - devi anche verificare se tale install e` adatto alla tua piattaforma/sistema operativo (alcune volte gli install vengono forniti in versioni diverse, e devi usare quella corretta).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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 © 2026 vBulletin Solutions, Inc. All rights reserved.