Ejemplo de acceso a un fichero binario
2004-01-28 00:00:00
Esta joyita aparecio hace poco en un comentario de barrapunto, la guardo aqui porque me parece un ejemplo de como
acceder a ficheros binarios bastante bueno. El programa en si coge un paquete formado por varios zip's pegados y los separa
conforme los va encontrando.
#!/usr/bin/perl $hb="PK\x03\x04"; $he="PK\x05\x06"; undef $/; $bulk = ; (@f)= ($bulk =~ m/(?:($hb.*?$he.{18}).*?)+/sg); for(@f) { $i++; open F, ">fw$i.zip"; print F $_ }
Vaya, ahora que lo miro, me parece que a lo mejor tiene demasiado nivel, cuando encuentre un codigo más basico de como
leer y escribir en binario os lo subiré.
ACTUALIZACIí“N 23/07/2004 Como lo prometido es deuda, aqui teneis otro ejemplo más claro, este código filtra caracteres binarios
y solo deja pasar los que tengan un valor ASCII entre 32 y 127 (es decir, es algo muy parecido al comando strings de UNIX):
#!/usr/bin/perl open(DFILE, "-") || die "open $!"; binmode(DFILE); $offset=0; $separador=0; while ( sysread(DFILE,$buf,1,$offset)) { if ((ord($buf)>32) && (ord($buf)<127)) { print $buf; $separador=1; } else { if ($separador==1) { print "\\n"; $separador=0; } } $offset = $offset++; next; } close (DFILE); if ($separador==1) { print "\\n"; }
Keith Amling (25/09/2005, 13:03) You might like xxd and strings. |