guest312: read hört bei nem bestimmten byte auf

Hi,
dank erwin ist ja jetzt schonmal geklärt, wie ich an die hex-werte einer datei komme.
aber jetzt hab ich bei read ein problem: immer beim byte 1A hört read auf. egal, wo ich das in der datei stehen habe. möglicherweise gibts noch mehr solcher bytes, aber habe bis jetzt keins gefunden. ist das irgendwie ein EOF-Byte?

hier mal mein code-schnipsel dazu:

open(file, "<./file.bin");
my @file;
my $i = 0;
my $temp;
while(read file, $temp, 1)
{
 $file[$i] = sprintf("%X", ord $temp);
 print "$i:$file[$i]\n";
 $i++;

}

woran kann der abbruch liegen? er gibt als letztes das byte vor dem '1A' aus

mfg, martin

  1. Hallo guest312,

    aber jetzt hab ich bei read ein problem: immer
    beim byte 1A hört read auf. egal, wo ich das in
    der datei stehen habe.

    Windows? binmode FILE; vergessen? :)

    Gruesse,
     CK

    --
    Nichts zu begehren, das ist der Weg.
  2. problem mit hilfe von christian ausm chat gelöst.
    binmode FILE;
    wirkt manchmal wunder :)
    trotzdem danke.
    mfg, martin

  3. open(file, "<./file.bin");

    Auch wenn du dir jetzt sicher bist, solltest du immer open prüfen, das kann die u.U. stundelange Fehlersuche ersparen:

    open(FILE, "<./file.bin") || die "Kann ./file.bin nicht öffnen, weil: $!";

    Filehandles sollten mit Grossbuchstaben geschreiben werden, siehe perldoc perlstyle

    my @file;
    my $i = 0;
    my $temp;
    while(read file, $temp, 1)
    {
     $file[$i] = sprintf("%X", ord $temp);

    push @file, .... wäre hier wohl effizienter.

    Struppi.

    P.S. Ach ja, und binmode nicht vergessen

    1. hi Struppi,

      Filehandles sollten mit Grossbuchstaben geschreiben werden, siehe perldoc perlstyle

      So isses, endlich mal einer von der Alten Garde ;-)

      *SCNR, Erwin

      use strict; # im Alter erst recht!

      --
      SELFforum - Das Tor zur Welt!
      Theoretiker: Wie kommt das Kupfer in die Leitung?
      Praktiker: Wie kommt der Strom in die Leitung?
      1. hi Struppi,

        Filehandles sollten mit Grossbuchstaben geschreiben werden, siehe perldoc perlstyle

        So isses, endlich mal einer von der Alten Garde ;-)

        hehe, erhlich gesagt hab ich's noch nie gelesen und perldoc benutzt ich auch nicht.
        Aber liest sich viel cooler, als zu schreiben guck mal hier oder dort, es gibt Konventionen, die sinnvoll sind.

        und grad beim drübergucken merk ich auch, das mein Style anders ist als dort beschrieben

        use strict; # im Alter erst recht!

        Davon ging ich mal aus (er benutzt my) und natürlich -w (oder use warnings)

        Struppi.