Thread daten auslesen benötige hilfe
(23 answers)
Opened by quant at 2009-02-10 16:37
hallo
danke dass du dich mir annimmst, ich hab versucht mal das umzusetzen was du geschrieben hast... der code läuft auch soweit, solange ich pro event nur nach einem lambda (27) suche, sobald ich nach 2 suchen will versagt mein können. hier der modofizierte code: 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 #!/usr/bin/perl use strict; use warnings; my $noe; while(<>) { my @stuff=split(' '); if(/UQMD/){ } elsif(/projectile:/){ my $protar=$_ } elsif(/equation_of_state:/){ my $ecm=$stuff[5]; my $midy=log($ecm/0.938); my $elab=$stuff[3]; my $plab=$stuff[7]; } elsif(/event#/){ $noe++ # numbers of events: noe } else{ if($#stuff==14){ my @x=@stuff[0..3]; my @p=@stuff[4..7]; my @id=@stuff[8..11]; my $mass=$id[0]; my $ityp=$id[1]; my $iz2=$id[2]; my $charge=$id[3]; # ab hier steht folgende info zur verfuegung: # stuff[0] = r_0 = $x[0] # stuff[1] = r_x = $x[1] # stuff[2] = r_y . # stuff[3] = r_z . # stuff[4] = p_0 = $p[0] # stuff[5] = p_x = $p[1] # stuff[6] = p_y . # stuff[7] = p_z . # stuff[8] = mass = $id[0] # stuff[9] = ityp = $id[1] # stuff[10]= iz2 = $id[2] # stuff[11]= charge = $id[3] my $noe1; if ($ityp==27) { $noe1=$noe; print("lambda \n"); print("Event", $noe1, "\n"); # if ($itype==27 && $noe1==$noe){ #hier wuerde ich gern suchen ob 27 nochmal vorkommt in diesem event # print("match"); # } } } } } die daten files die ich checke sehen immer gleich aus, oben ist eine art kopf wo event nummer etc. drinne stehen und dann folgt eine tabelle mit werten... in dieser tabelle will ich dann erst mal pro event suchen ob die zahl 27 zwei mal vorkommt hier der input: Code: (dl
)
1 UQMD version: 20030 1000 20030 output_file 14 danke für eure hilfe |