Schrift
[thread]6914[/thread]

hash: doppelt vorkommende Schlüssel/werte aufs



<< >> 4 Einträge, 1 Seite
hihat
 2005-04-20 19:58
#54019 #54019
User since
2005-04-20
2 Artikel
BenutzerIn
[default_avatar]
Hallo,
folgendes Problem:
Ich soll eine Textdatei "artikel.txt" einlesen.
Diese enthält in der 1.Spalte Artikelnummern und in der 2. Spalte Artikelanzahlen. Manche Artikelnummern sind doppelt, besitzen aber unterschiedliche Artikelanzahlen.
Die die öfter vorkommen, sollen im zugehörigen Hashwert aufsummiert werden.
folgenden Code habe ich geschrieben:

while ( defined ( $line = <INFILE> ) )
{
( $artikelnummer,$artikelanzahl ) = split ( " " , $line );
$hashartikel { $artikelnummer } = $artikelanzahl;
}

Im Hash %hashartikel stehen nun die Schlüssel/Values.
Wie prüfe ich nun, ob ein Schlüssel im Hash öfter vorkommt, um dann dessen Werte im im zugehörigen hashwert zu summieren?

Gruß
hihat
Strat
 2005-04-20 20:18
#54020 #54020
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
my %hashartikel = ();
while (<INFILE>) {
  my ($artikelNr, $artikelZahl) = split(/ /, $_, 2); 
  if (exists $hashartikel{$artikelNr}) {
    $hashartikel{$artikelNr} += $artikelZahl;
  }
  else {
    $hashartikel{$artikelNr} = $artikelZahl;
  }
} # while

oder kuerzer:
Code (perl): (dl )
1
2
3
4
5
my %hashartikel = ();
while (<INFILE>) {
  my ($artikelNr, $artikelZahl) = split(/ /, $_, 2); 
  $hashartikel{$artikelNr} += $artikelZahl;
} # while
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
pq
 2005-04-20 22:20
#54021 #54021
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=hihat,20.04.2005, 17:58]Wie prüfe ich nun, ob ein Schlüssel im Hash öfter vorkommt, um dann dessen Werte im im zugehörigen hashwert zu summieren?[/quote]
gar nicht. ein schlüssel ist im hash eindeutig..
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
hihat
 2005-04-20 22:47
#54022 #54022
User since
2005-04-20
2 Artikel
BenutzerIn
[default_avatar]
Hallo Strat,
danke für deine Antwort (funzte sofort).

gruß
hihat
<< >> 4 Einträge, 1 Seite



View all threads created 2005-04-20 19:58.