Thread Zeichenlimit einrichten (40 answers)
Opened by andy at 2013-05-03 14:53

FIFO
 2013-05-31 12:56
#167888 #167888
User since
2005-06-01
469 Artikel
BenutzerIn

user image
Du musst das Setzen der Hash-Elemente und die Abfrage in die jeweilige Schleife nehmen:

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
use warnings;
use strict;

open my $infile_1, '<', 'content.csv' or die "Fehler beim Öffnen der Datei";
open my $infile_2, '<', 'common.csv' or die "Fehler beim Öffnen der Datei";
open my $outfile,  '>', 'neu.csv' or die "Fehler beim Öffnen der Datei";

my @datei1 = <$infile_1>;
my @datei2 = <$infile_2>;
chomp (@datei1, @datei2);

my %hash;

for my $line_1 (@datei1) {
    my ($nummer1, $kuerzel1, $gesetz1) = split /;/, $line1;
    $hash{$kuerzel1} = $gesetz1;
}

for my $line2 (@datei2) {
    my ($nummer2, $kuerzel2, $gesetz2) = split /;/, $line2;
    if (exists($hash{$kuerzel2})){
    # in $hash{$kuerzel2} steht $gesetz1 zum kuerzel
        print $outfile join(';', $kuerzel2, $hash{$kuerzel2}, $gesetz2), "\n";
    }
}


Und Dir doch mal einen Perl-mäßigen Stil angewöhnen :)

Editiert von FIFO: Variablendeklaration innerhalb der loops

Editiert von FIFO: Variablendeklaration müssen doch außerhalb stehen wg. Zugriff

Editiert von FIFO: chomp ergänzt

Editiert von FIFO: Blödsinn, es muss $hash{$kuerzel2} und nicht $gesetz1 ausgegeben werden
Last edited: 2013-05-31 13:38:58 +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 Zeichenlimit einrichten