Thread Datei nach Zeichen durchsuchen (15 answers)
Opened by Emeto at 2011-07-01 18:09

FIFO
 2011-07-05 15:01
#150153 #150153
User since
2005-06-01
469 Artikel
BenutzerIn

user image
Hi,

leider kann ich nicht alles nachvollziehen, ich versuche mal ...

die Fehlermeldung besagt, dass Du in Data1.txt Zeilen mit weniger als 2 Kommas hast, oder zwischen 2. und 3. Komma nichts steht.

Die erste Schleife soll wahrscheinlich ungefähr dieses machen:
Code (perl): (dl )
1
2
3
4
5
6
while (<$in>) {
    my @tmp = split ',';             # perldoc -f split
    my ($number, $name) = @tmp[0,2]; # perldata, Stichwort 'slice'
    next if ! defined $name;
    push @{$dump_packs{$name}}, $number ; # key: name, value: number array (!)
}


Jetzt hast Du eine Zuordnung Name => [Nummernliste].

Hier ist einiges fraglich oder verkehrt:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for my $key (sort keys %dump_packs) { # write the name and occurency in a new file

#-> @pack = $key; # FALSCH: @pack enthält nur den Wert $key
# besser:
    my @pack = @{$dump_packs{$key}};
    
#-> open(my $out, '>', "$resdir/ ${dumpfile}_dump.txt") or die $!; 
#                               ^ Leerzeichen im Pfad 
    # File im Append-Modus (!) öffnen
    open(my $out, '>>', "$resdir/${dumpfile}_dump.txt") or die $!; 

#-> print $out join('', $key); # key and occurency ???
    print $out $key . "," . scalar(@pack) . "\n"; # Name, Anzahl 
    close $out;
}


Wenn Du wirklich alles in einer Datei brauchst, kannst Du natürlich das open- und close-Statement außerhalb der Schleife plazieren.
Die Arrays @tmp und @pack, die ja immer neu gefüllt werden, solltest Du innerhalb der Schleifen mit my deklarieren.

Probier mal bis dahin, für den zweiten Teil habe ich jetzt keine Zeit mehr, vielleicht abends.

Gruß FIFO
Last edited: 2011-07-05 15:02:36 +0200 (CEST)
Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? -- Brian Kernighan: "The Elements of Programming Style"

View full thread Datei nach Zeichen durchsuchen