Stefan Bach: NOCHMALS: Problem beim Einlesen von Dateien (Perl)

Hallo nochmals!

Der letzte Tip hat das Problem nicht gelöst. Ich möchte mit diesem Script:

--

#!/usr/bin/perl

binmode SAVEGAME;

open(SAVEGAME, "<$ARGV[0]") || die "Savegame nicht gefunden!";

while(($Zeichen = getc(SAVEGAME)) ne "")
{
  print "$Zeichen";
}

close(SAVEGAME);

--

eine Datei einlesen, in der mitten in der Datei der HEX Wert 00 vorkommt. Der Anfang der Datei sieht folgendermaßen aus:

--
HEX   |6D|69|73|73|69|6F|6E|20|31|32|20|2F|20|65|6E|64
ASCII |m |i |s |s |i |o |n |  |1 |2 |  |/ |  |e |n |d
------------------------------------------------------
HEX   |65|0D|0A|00|1A|FD|07|83|C0|88|F5|82|04|00|00|00
ASCII |e |. |. |. |. |² |. |â |+ |ê |_ |é |. |. |. | .
------------------------------------------------------
HEX   |48|87|F5|82|04|00|00|00|C0|88|F5|82|0C|00|00|00
ASCII |H |ç |_ |é |. |. |. |. |+ |ê |_ |é |. |. |. |.
--

Ich kann die Datei aber nur bis [...]ende.. einlesen, da danach der HEX Wert 00 vorkommt welcher als Dateiende angesehen wird.

Wie kann ich die Datei trotzdem mit Perl (Java, QBasic, VisualBasic) einlesen?

Gruß
  Stefan

  1. Hallo nochmals!

    eine Datei einlesen, in der mitten in der Datei der HEX Wert 00 vorkommt. Der Anfang der Datei sieht folgendermaßen aus:

    --
    HEX   |6D|69|73|73|69|6F|6E|20|31|32|20|2F|20|65|6E|64
    ASCII |m |i |s |s |i |o |n |  |1 |2 |  |/ |  |e |n |d

    HEX   |65|0D|0A|00|1A|FD|07|83|C0|88|F5|82|04|00|00|00
    ASCII |e |. |. |. |. |² |. |â |+ |ê |_ |é |. |. |. | .

    HEX   |48|87|F5|82|04|00|00|00|C0|88|F5|82|0C|00|00|00
    ASCII |H |ç |_ |é |. |. |. |. |+ |ê |_ |é |. |. |. |.

    Ich kann die Datei aber nur bis [...]ende.. einlesen, da danach der HEX Wert 00 vorkommt welcher als Dateiende angesehen wird.

    Achso, sorry,  die Laenge der Datei hast Du ja.  (Perl)

    $size  = (stat($filename)) [7] ;

    oder  so. Dann brauchst Du nur  noch  eine forschleife,
    die mitzaehlt , bis eben $sie  erreicht ist.

    Gruesse

    srm.

    Wie kann ich die Datei trotzdem mit Perl (Java, QBasic, VisualBasic) einlesen?

    Gruß
      Stefan