Thread Die Reihenfolge meiner Liste ändern! Hilfe!!!
(1 answers)
Opened by Pro_Galli at 2007-10-18 15:29
Hallo Perl-Leute!!
Ich habe ein Problem, das schon seit einen paar Tage nicht lösen kann, und ist das ich eine Liste habe, wie die folgende: 2112;6630325;SolidCAM;66303251_BUCHSE.PRT 2112;6630325;SolidCAM;66303251_BUCHSE_000.PRT 2112;6630325;2112;6630325A-.o 2112;6630325;GEO;6630325-SP1AVO0202112.GEO 2112;6807602;2110;6807602A-.o 2112;6807602;2112;6807602A-.o 2112;6807602;2127;6807602A-.o 2126;6924191;2125;6924191AA.O 2126;6924191;2125;6924191BA.o 2126;6924191;2126;6924191AA.o 2126;6924191;2127;6924191A-.o Nun möchte ich die Reihenfolge der Zeile ändern und so soll sie aussehen 2112;6630325;2112;6630325A-.o #---------------------------hier 2112;6630325;SolidCAM;66303251_BUCHSE.PRT 2112;6630325;SolidCAM;66303251_BUCHSE_000.PRT 2112;6630325;GEO;6630325-SP1AVO0202112.GEO 2112;6807602;2112;6807602A-.o#<--------------------------hier 2112;6807602;2110;6807602A-.o 2112;6807602;2127;6807602A-.o 2126;6924191;2126;6924191AA.o #<--------------------------hier 2126;6924191;2125;6924191AA.O 2126;6924191;2125;6924191BA.o 2126;6924191;2127;6924191A-.o Die Zeilen wollte ich eigentlich anordnen, in Abhängigkeit von dem 1 und 3 Element meines Arrays. Also wenn die Zeile mit 2112 anfängt, dann soll der 3 Element dieser gleichen Zeile auch 2112 haben, solange das zweite Element (in diesem Fall 6630325) nicht geändert wird. Ich habe das folgende Script geschrieben, aber es hat nicht mit der neuen Reihenfolge geklappt. 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 for (@vorhandene_programme) { $zeile = $_; @split_vorhandene_programme = split (/;/, $zeile); $laufende_kostenstelle = @split_vorhandene_programme[0]; $material_nummer = @split_vorhandene_programme[1]; $gefundene_kostenstelle = @split_vorhandene_programme[2]; if ($laufende_kostenstelle == $gefundene_kostenstelle) { $zeile_mit_gleicher_kst = $_; if ($merker == 0) { print @gefundene_programme_in_andere_kst; @gefundene_programme_in_andere_kst = (); } print "$zeile_mit_gleicher_kst"; $merker = 1; } else { $merker = 0; $zeile_mit_anderer_kst = $_; push (@gefundene_programme_in_andere_kst, $zeile); } } |