[Linux-Biella] perl

Claudio M. cmaffio a bilug.it
Ven 16 Apr 2010 08:58:08 CEST


Il giovedì 15 aprile 2010 21:06:13 vallini.daniele a bilug.linux.it ha scritto:
> Thu, Apr 15, 2010 at 09:26:22AM +0200  Claudio M. ha scritto:
> > > Mi sfugge qualcosa del beneamato perl ?
> >
> > Si, ti sfugge il fatto che il parsing di un file non passa dal mettere le
> > righe del file in un array!!!!!!
>
> A parte il ciclo for che non sapevo usare correttamente dove diavolo ho
> inoltre sbagliato? questo codice funziona:
>
> foreach $pagina (303..310)
> {
> open (A, "/gp/wrai/tmp2/$pagina");      # apro in lettura
> open (B,">/gp/wrai/tmp3/$pagina");      # apro in scrittura
>
> @Pagina=<A>;                            # array righe pagina..
>
>  foreach $Riga
> (0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,
> 46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,
> 88,90,92,94,96,98,100)
> # for ($Riga = 0; $Riga <= 100; $Riga = $Riga + 2 ) questo l'ho imparato
> ora {
>   chomp @Pagina[$Riga];  # elimino NL per abbinare le 2 linee dati...
>   $Riga3="@Pagina[$Riga..$Riga+1]";
>   chomp $Riga3;          # elimino NL per abbinare data ultima e data
> precedente print B "$Riga3 $DataUlt $DataPre \n";
>  };
> };


prova a fare una cosa del genere:

foreach $pagina (303..310) {
	open A, "< /gp/wrai/tmp2/$pagina";      # apro in lettura
	open B, "> /gp/wrai/tmp3/$pagina";      # apro in scrittura

	$i=0;
	$prec = "";
	while (<A>) {
		chomp $_;
		if (i$i++ %2) {
			$Riga3="$prec$_";
		} else {
			$prec = $_:
		}
		[tutto quello che devi fare con $Riga3]
	}
}

Bye

-- 
Contatto skype: cmaffio
Linux User: #151147
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        non disponibile
Tipo:        application/pgp-signature
Dimensione:  197 bytes
Descrizione: This is a digitally signed message part.
Url:         http://ml.bilug.linux.it/pipermail/linux/attachments/20100416/b20df4a4/attachment.bin 


Maggiori informazioni sulla lista Linux