Thread Doppelte Werte Ausfiltern
(8 answers)
Opened by Lebewesen at 2012-05-03 16:46
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 |