-+  Associazione
-+  Documenti
 |-  Modern Perl
 |-  Bibliografia
 |-  Articoli
 |-  Talk
 |-  Perlfunc
 |-  F.A.Q.
 |-  F.A.Q. iclp
-+  Eventi
-+  Community
-+  Blog
-+  Link
Corso di Perl



 


indietro

[23] Come modifico, accedendovi in maniera casuale, un file binario? file, binary patch

Se state semplicemente tentando di modificare una parte di un file binario, in molti casi qualcosa di semplice come ciò che segue funziona:

    perl -i -pe 's{window manager}{window mangler}g' /usr/bin/emacs

Comunque, se i vostri record sono di lunghezza fissa, potreste preferire qualcosa di questo tipo:

    $DIMREC = 220;  # dimensione del record, in byte
    $numerc = 37;   # record da aggiornare
    open(FH, "+<qualcosa") || die "non posso aggiornare qualcosa: $!";
    seek(FH, $numrec * $DIMREC, 0);
    read(FH, $numrec, $DIMREC) == $DIMREC || die "non posso leggere $numrec: $!";
    # sovrascrivi questo record
    seek(FH, -$DIMREC, 1);
    print FH $record;
    close FH;

Il locking e la gestione degli errori sono lasciati come esercizi al lettore. Non dimenticatevene o ve ne pentirete.

vedi in inglese

AUTORE E COPYRIGHT

Copyright (c) 1997, 1998, 1999, 2000, 2001 Tom Christiansen e Nathan Torkington. Tutti i diritti riservati.

Questa documentazione è libera; puoi ridistribuirla e/o modificarla secondo gli stessi termini applicati al Perl.

Indipendentemente dalle modalitè di distribuzione, tutti gli esempi di codice in questo file sono rilasciati al pubblico dominio. Potete, e siete incoraggiati a farlo, utilizzare il presente codice o qualunque forma derivata da esso nei vostri programmi per divertimento o per profitto. Un semplice commento nel codice che dia riconoscimento alle FAQ sarebbe cortese ma non è obbligatorio.

D:
Progetti e documenti in rilievo
Corso di Perl Progetto pod2it
D:
La ML di Perl.it
mongers@perl.it è la lista ufficiale di Perl Mongers Italia per porre quesiti di tipo tecnico, per rimanere aggiornato su meeting, incontri, manifestazioni e novità su Perl.it.
Iscriviti!
D:
Annunci Google