Chris
27. Januar 2009 um 17:35
1
Hallo,
ich muss in einer eingelesenen Grafikdatei pruefen ob die ersten Zeichen:
short 0x4d4d
oder
short 0x4949
sind.
Wenn ich das richtig sehe sind 4d4d und 4949 die Hexadezimalwerte.
Aber was bedeuten die 0x davor?
Und wie kann ich die Werte in Perl vergleichen?
Hatte bisher mit so etwas noch nichts zu tun.
Christian
Aber was bedeuten die 0x davor?
Dass der Wert Hexadezimal ist.
Hallo Christian,
ich muss in einer eingelesenen Grafikdatei pruefen ob die
ersten Zeichen:
short 0x4d4d
oder
short 0x4949
musst du auf den String ‚short 0x4d4d‘ prüfen ? Ich denke du willst aber nur auf die Bytes selbst testen.
Und wie kann ich die Werte in Perl vergleichen?
Ein kleines Beispiel:
#!/usr/bin/perl
use strict;
use warnings;
hierbei handelt es sich uebrigens um ein 1-Pixel transparentes GIF
my $pixel = „\x47\x49\x46\x38\x39\x61\x01\x00“ .
„\x01\x00\x80\x00\x00\x00\x00\x00“ .
„\x00\x00\x00\x21\xf9\x04\x01\x00“ .
„\x00\x00\x00\x2c\x00\x00\x00\x00“ .
„\x01\x00\x01\x00\x00\x02\x02\x44“ .
„\x01\x00\x3b“;
my $bytes = substr($pixel, 0, 2);
if ($bytes eq „\x47\x49“) {
print „passt !\n“;
}
exit;
Du kannst in auch in (String)Vergleichen mit \xHexPattern direkt den Wert angeben.
Gruß
Torsten
Chris
30. Januar 2009 um 17:12
4
Hallo Thorsten,
das hat mir super geholfen.
Noch eine Frage:
Weisst Du zufaellig wo man eine Uebersicht fuer die ersten Zeichen einer Grafikdatei findet, so dass man aus diesen Zeichen erkennen kann um welches Format es sich handelt?
Christian
Hallo Christian,
Weisst Du zufaellig wo man eine Uebersicht fuer die ersten
Zeichen einer Grafikdatei findet, so dass man aus diesen
Zeichen erkennen kann um welches Format es sich handelt?
hier
http://www.astro.keele.ac.uk/oldusers/rno/Computing/… kannst du einige finden, ich habe aber keine Ahnung ob das vollständig ist.
Gruß, Torsten