[Tech] Perl ? Carino, ma...

Claudio Cicali c.cicali@mclink.it
Mer 18 Apr 2001 12:30:49 CEST


In data 12:09 PM 4/18/01 +0200, Cosimo Vagarini ha scritto:
>Franco Bagnoli scrisse, il 18-Apr-2001
> > Se sei in grado di trovare uno o piu' caratteri che terminano il record,
> > puoi semplicemente assegnarli a $/ e il perl ti legge il file record per
> > record. Ma non credo che sia fatto cosi'. Probabilmente il file e' un dump
> > di strutture, con un contatore iniziale che dice quanto e' lungo il record
> > e poi i dati, oppure e' a lunghezza fissa.  Se e' cosi' puoi leggere prima
> > il contatore, eventualmente
> > convertirlo (unpack) e poi usarlo per leggere il record come ti dice
> > Cosimo usando read. Oppure usi una "finestra" di ampiezza fissa, magari
> > concatenandone dinamimacemnte due per evitare di "mancare" un record
> > perche' la stringa in questione e' nel mezzo (in questo caso devi
> > eliminare i pattern trovati con s/$pattern//g) ma ti perdi l'identita' del
> > record e quindi non sai se il pattern lo hai trovato due volte in un
> > record o una volta in due record...
>
>Ma se conosce come e' fatto il record puo' attraverso una regular expression
>dividere nel buffer della read i due (o piu') "mezzi-record".
>La prima parte la concatena al mezzo record messo da parte nella lettura
>precedente e via di seguito....
>E' leggermente piu' complessa l'elaborazione ma si puo' fare.
>E' ovvio che si deve conoscere la struttura del file.
>
>Cosimo.

No, perfetto. I file hanno il terminatore di riga uguale a "|££|" per cui
come diceva Franco assegno $/ = "|$$|" e dovrebbe funzionare.
Vi faccio sapere, grazie !

o-------------------o----------------------o
|  Claudio Cicali   | http://www.flexer.it |
|c.cicali@mclink.it |    Nerd Made Good    |
o-------------------o----------------------o





Maggiori informazioni sulla lista flug-tech