Matthias: Probleme mit filesize > 1 GB???

Beitrag lesen

Hallo Struppi,

im Prinzip sieht es nun so aus:

$/= "\x5B\x50\x5B\xff";
$="";

print "Start: $CTIME_String\n";

open(EINDATEI, "<$Datei") || die "$Datei: $!";
open(AUSDATEI, ">$ausgDatei") || die "$ausgDatei: $!";

while (<EINDATEI>)
{
  chomp $_;
  $text = $_;
  my $erstesZeichen = substr($text,0,1);
  if ($erstesZeichen eq "\x02") {
   print AUSDATEI "\x0A".substr($text,1 ) ;
  } elsif ($erstesZeichen eq "\x03"){
   print AUSDATEI "\x0D".substr($text,1 ) ;
  }  elsif ($erstesZeichen eq "\x04"){
   print AUSDATEI "\x20".substr($text,1 ) ;
  }  elsif ($erstesZeichen eq "\x05"){
   print AUSDATEI "\x19".substr($text,1 ) ;
  }  elsif ($erstesZeichen eq "\x01"){
   print AUSDATEI "\x00".substr($text,1 ) ;
  } else {
   print AUSDATEI $text  ;
  }
}

und hat kein Problem mit Dateien > 1 GB. Sehr guter Tipp mit dem Zeilentrenner. Jetzt kommen noch die Tests, ob das Ergebnis stimmt.

Merci

Matthias