Thread Doppelte Werte Ausfiltern (8 answers)
Opened by Lebewesen at 2012-05-03 16:46

Lebewesen
 2012-05-07 16:14
#158134 #158134
User since
2011-09-09
62 Artikel
BenutzerIn

user image
ID; Datum; VeränderbareWerte
01; 2011-01-01; abc
02; 2011-01-01; jkl
01; 2011-01-02; abc
01; 2011-01-03; xyz
01; 2011-01-04; abc

Die das sich der Wert in 01 wieder in einen dagewesenen Wert geändert hat, müsste ich auch wissen. Leider kenn ich mich nicht gut genug mit HashMaps aus :(

Ich weiß, dass ich die ID als Key nehmen muss, und den Wert als Value. Wenn noch kein Key existiert, dann wird die Zeile geschrieben, und der Key aufgenommen.
Wenn der Key existiert, und sich Value geändert hat, dann wird die Zeile geschrieben und der Key mit dern neuen Value aktualisiert.

Leider schaffe ich das überhaupt nicht umzusetzen... D:

Irgendwas ist falsch, allerdings weiß ich nicht was!

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
my(@daten) = split(/\n/, $daten, 0);  #In ein Zeilenarray umwandeln
foreach my $line (@daten) {           #Array Zeilenweise abarbeiten
    $line =~ m%(.*?);.*?;(.*)%;       #Zeile ohne Datum als Primary Key
    my $key = $1;
    my $value = $2;                   
    if (!exists $seen{$key}){
        print "$line\n";
        $seen{$key} = $value;
    }elsif (! $key ~~ $seen{$key}){
        print "$line\n";
        $seen{$key} = $value;
    }
}#end foreach duplikate verwerfen

View full thread Doppelte Werte Ausfiltern