Loading ...
Sorry, an error occurred while loading the content.

Bits and Bytes

Expand Messages
  • ikarus196912 <reinhart.gruessl@bawag.com>
    Hallo Leute! Ich heiße Reinhart und beginne gerade, mich mit PERL auseinanderzusetzen. Womit ich im Moment kämpfe ist folgendes: Ich habe aus einer Datei mit
    Message 1 of 3 , Jan 3, 2003
    • 0 Attachment
      Hallo Leute! Ich heiße Reinhart und beginne gerade, mich mit PERL
      auseinanderzusetzen. Womit ich im Moment kämpfe ist folgendes:

      Ich habe aus einer Datei mit der Funktion
      read DATEI, $inhalt, 4
      die ersten 4 Bytes ausgelesen und mit
      $byte1 = substr($inhalt,0,1);
      $byte2 = substr($inhalt,1,1);
      $byte3 = substr($inhalt,2,1);
      $byte4 = substr($inhalt,3,1);
      zugewiesen.

      Zur Darstellung am Schirm wollte ich sie mit
      print sprintf("\$byte1=%x\n", $byte1);
      ausgeben, was aber nicht funktioniert hat (ausgegeben wird eine Null).

      Auch die Abfrage auf einzelne Bits mit z.B.:
      if ($byte1 & 0x01){
      print "sitzt";
      }
      else {
      print "sitzt nicht";
      }

      funktioniert nicht. Kann mir jemand bitte sagen, was ich dabei falsch
      mache? Vielen Dank im Voraus!

      Reinhart
    • Hans Ginzel
      Hallo, ... hier spricht man English? We should speek english here. ... my($WhereIam, $CmdName) = $0 =~ m#^(.*[/ ]|[A-Z] :)?(.+)$#i; $opt{debug}++; # debug
      Message 2 of 3 , Jan 3, 2003
      • 0 Attachment
        Hallo,

        On Fri, Jan 03, 2003 at 08:52:09AM -0000, ikarus196912 <reinhart.gruessl@...> wrote:
        > Hallo Leute! Ich heiße Reinhart und beginne gerade, mich mit PERL
        > auseinanderzusetzen. Womit ich im Moment kämpfe ist folgendes:

        hier spricht man English? We should speek english here.

        > Ich habe aus einer Datei mit der Funktion
        > read DATEI, $inhalt, 4

        my($WhereIam, $CmdName) = $0 =~ m#^(.*[/\\]|[A-Z]\:)?(.+)$#i;

        $opt{debug}++; # debug this code

        $DATEI = 'file.bin';
        open DATEI, $DATEI or
        die "$CmdName: Cannot open file `$DATEI': $!.\n";

        $len = 4;
        read DATEI, $contetnt, $len == $len or
        die "$CmdName: Cannot read data from `$DATAI': $!.\n";

        @bytes = unpack "C$len", $contetnt;
        warn "byte1=$bytes[0]\n" if $opt{debug};

        > mache? Vielen Dank im Voraus!

        Hope, it helps. Read perldoc -f pack; perldoc -f unpack;

        Hans
      • ikarus196912 <reinhart.gruessl@bawag.com>
        Thank you Hans for your hints! Regards, Reinhart
        Message 3 of 3 , Jan 3, 2003
        • 0 Attachment
          Thank you Hans for your hints!

          Regards, Reinhart

          --- In perl-beginner@yahoogroups.com, Hans Ginzel <hans@m...> wrote:
          > Hallo,
          >
          > On Fri, Jan 03, 2003 at 08:52:09AM -0000, ikarus196912
          <reinhart.gruessl@b...> wrote:
          > > Hallo Leute! Ich heiße Reinhart und beginne gerade, mich mit PERL
          > > auseinanderzusetzen. Womit ich im Moment kämpfe ist folgendes:
          >
          > hier spricht man English? We should speek english here.
          >
          > > Ich habe aus einer Datei mit der Funktion
          > > read DATEI, $inhalt, 4
          >
          > my($WhereIam, $CmdName) = $0 =~ m#^(.*[/\\]|[A-Z]\:)?(.+)$#i;
          >
          > $opt{debug}++; # debug this code
          >
          > $DATEI = 'file.bin';
          > open DATEI, $DATEI or
          > die "$CmdName: Cannot open file `$DATEI': $!.\n";
          >
          > $len = 4;
          > read DATEI, $contetnt, $len == $len or
          > die "$CmdName: Cannot read data from `$DATAI': $!.\n";
          >
          > @bytes = unpack "C$len", $contetnt;
          > warn "byte1=$bytes[0]\n" if $opt{debug};
          >
          > > mache? Vielen Dank im Voraus!
          >
          > Hope, it helps. Read perldoc -f pack; perldoc -f unpack;
          >
          > Hans
        Your message has been successfully submitted and would be delivered to recipients shortly.