Schrift
[thread]6385[/thread]

Datei binär auslesen



<< >> 5 Einträge, 1 Seite
Gast Gast
 2004-07-08 14:11
#83949 #83949
Hallo zusammen!

Ich stehe gerade vor dem Problem, dass ich eine Datei binär auslesen möchte.
Ist der eigentliche Inhalt eben beispielsweise "foo", dann möchte ich aber letztendlich sowas wie "1000111010100101110" haben.
Ich hatte schon ein wenig mit pack und unpack rumexperimentiert, das Problem ist aber, dass das Ganze später auch mit ausführbaren Dateien etc. funktionieren muss. Sprich, ich will eigentlich die komplette Datei im Binärformat vor mir haben.

Hoffe mir kann da jemand weiterhelfen :)

Vielen Dank schonmal
Marko
Taulmarill
 2004-07-08 15:19
#83950 #83950
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
hab mit so was wohl noch nich viel gemacht, aber du solltest dir auf jeden fall mal binmode anschauen.
wenn du die daten aber nicht nur mit binäroperationen bearbeiten sonder auch wirklich in der "0101"-form haben willst wirst du um pack/unpack nicht drumrum kommen.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
sri
 2004-07-08 15:26
#83951 #83951
User since
2004-01-29
828 Artikel
BenutzerIn
[Homepage] [default_avatar]
Code: (dl )
cat irgendwas.txt | perl -ne 'print unpack"B*",$_'


:)
Crian
 2004-07-08 15:58
#83952 #83952
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
Naja, es ginge auch ohne pack/unpack, aber ich schätze mal, dass es unter Verwendung von pack/unpack schneller und einfacher ist.
Ich würd die Daten aber intern wohl trotzdem als Hex-Zahlen vorhalten und nur zur Anzeige (oder was Du auch immer machen möchtest) umwandeln. Ein String mit Nullen und Einsen nimmt einfach ziemlich viel Platz weg.

Was willst Du denn mit den Dateien dann machen?
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
lichtkind
 2004-07-09 00:39
#83953 #83953
User since
2004-03-22
5697 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
kennst du :

if (-e $filename) {
local *FILE;
open(FILE,"<$filename") or print"ich will keine datein öffnen";
binmode(FILE);
while((read FILE, $input, 5 ) > 0) {tu was;}
}
?, wobei FILE der handler ist, klar und 5 Byte weise eingelesen wird
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
<< >> 5 Einträge, 1 Seite



View all threads created 2004-07-08 14:11.