Schrift
[thread]6482[/thread]

auswerten einer Binärdatei - Größe 2GB



<< >> 3 Einträge, 1 Seite
Gast Gast
 2004-08-10 12:26
#85657 #85657
Hallo,
habe großes Problem, will Binärdatei von einer Größe 2GB bearbeiten. Nehme mir dabei immer 16 Byte = einem Informationsblock und lege ihn als Element in einem Feld ab.
Dann erfolgt ein Feldzugriff über foreach bei dem ich den Informationsblock spalte/ wandle/ prüfe/ kennzeichne und in ein multihash einlese um elemente bestmöglich abzulegen und diese dann zeilenweise in mehrere Dateien zu schreiben

hier meine eineleseroutine

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
################################################################################
sub read_in
{
   my ($botschaft_bin) = "\x00" x 16;


open FILE, "CCO_Quelldatei/Trigger/RC0.CCO");
binmode (FILE);

       seek (FILE, 1024, 0);

until (substr($botschaft_bin,0,5) eq "\xFF" x 5 && $botschaft_bin ne "\xFF" x 16)
{

       ######################################################################
  #Einlesen einer Botschaft des cco.files -> i.O.
    read (FILE, $botschaft_bin, 16);

       ######################################################################
  #Triggerabfrage und Speichern
      if (substr($botschaft_bin,5,1) eq "\x40") {
        push(@triggerzeitpunkt, substr($botschaft_bin,0,5));
       }

  ######################################################################
  #in der Botschaftsstruktur abspeichern

       push (@botschaften_gesamt, $botschaft_bin);
  }
close (FILE);
}
################################################################################  


-ist das multihash als struktur zu langsam?
-wie lese ich noch schneller ein?
-ist das kopieren vom Array in multihash (wie oben beschrieben) zu langsam?
-muss ich Arbeitstpeicherplatz beachten oder puffert Perl für mich?
-wie beschleunige ich vom Ablauf her, den Code?

danke=)

Edit: Code-Tags eingefuegt, -Dubu-\n\n

<!--EDIT|Dubu|1092130795-->
Crian
 2004-08-10 12:36
#85658 #85658
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
open(FILE, "CCO_Quelldatei/Trigger/RC0.CCO") or die $!;\n\n

<!--EDIT|Crian|1092127043-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
esskar
 2004-08-10 12:51
#85659 #85659
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
datei lese zugriffe sind langsam;
würde größere blöcke nehmen (vielfaches von 16) und diese dann matchen
<< >> 3 Einträge, 1 Seite



View all threads created 2004-08-10 12:26.