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

FIFO
 2011-07-02 00:30
#150076 #150076
User since
2005-06-01
469 Artikel
BenutzerIn

user image
Wenn Du etwas dranbleibst, lernst Du, wie Du es vermeiden kannst, die Datei so oft zu lesen (Deine Version liest die Datei einmal ein um die Fehlercodes zu lernen und dann jeweils nochmal pro Fehlercode, das ist ziemlich ineffizient). Hier mal kürzer (ungetestet):
Code (perl): (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
#!/usr/local/bin/perl -w
use strict;
use warnings;

my $dumpfile = "Proba.txt"; # write the name of the input file
my $resdir   = "errors";    # directory where will be saved the files 
                            # with the different error records
my %error;      

#------------------------------------------------------------------------------#

if (! -d $resdir) {
    mkdir($resdir) or die("Could not create result directory $resdir\n");
}

open (my $in, '<', $dumpfile) or die "Fehler beim Öffnen von $dumpfile: $!\n";

while (my $line = <$in>) {
    if ( $line =~ m|(\[\d+\])| ) {
        push @{$error{$1}}, $line; # Trefferzeile sofort im %error-Hash ablegen
    }
}
close $in;

print "Error_Type\tCount\n";

for my $key (sort keys %error) {
    print "$key\t" . scalar @{$error{$key}} . "\n"; # Anzahl
    open(my $out, '>', "$resdir/${dumpfile}_$key.txt") or die $!;
    print $out join('', @{$error{$key}});
    close $out;
}


Editiert von FIFO: typo
Last edited: 2011-07-02 00:41:27 +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