[Tech] O' Perl

Duncan Wilcox duncan@mclink.it
Gio 14 Giu 2001 11:51:39 CEST


At 11.40 14/06/2001 +0200, you wrote:
>dato il file :
>STOR 000 0*055*12345678#
>STOR 001 0*055*987654321#
>[...]
>STOR 999 0*055*333333#
>
>io modifico, ad esempio, la riga 2:
>STOR 001 0*06*3131#
>
>poi devo inviare i dati sulla seriale, eliminando STOR e inserendo a fine
>riga due return:
>
>dati in uscita:
>
>000 0*055*12345678#<cr><cr>             //la riga non e' cambiata
>001 0*06*3131#<cr><cr>                  //riga modificata
>[...]
>999 0*055*333333#<cr><cr>               //la riga non e' cambiata
><cr>                                    //a fine file va inviato un
>                                         //<cr> supplementare.

Non ho capito come e perche' vorresti modificare la riga 2, nel tuo esempio.

La traduzione da un formato all'altro e' abbastanza banale (scritto al 
volo, untested):

----------------------------------------
#!/usr/bin/perl

$in = $ARGV[0];
$out = $ARGV[1];

open(IN, $in) || die;
open(OUT, "+>$out") || die;

while($line = <IN>) {
         $in =~ s/[\r\n]$//; # elimina i fine riga vari
         $in =~ s/^STOR //; # elimina lo "STOR " iniziale
         print OUT "$in\r\r";
}

print OUT "\r"; # cr finale

close(OUT);
close(IN);
----------------------------------------

Puoi lanciarlo passando come primo argomento il file in ingresso e come 
secondo il device seriale del caso (/dev/ttyS1, ad esempio).

Duncan





Maggiori informazioni sulla lista flug-tech