Thread Die Reihenfolge meiner Liste ändern! Hilfe!!! (1 answers)
Opened by Pro_Galli at 2007-10-18 15:29

Pro_Galli
 2007-10-18 15:29
#101015 #101015
User since
2007-10-02
12 Artikel
BenutzerIn
[default_avatar]
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);
                }
        }

View full thread Die Reihenfolge meiner Liste ändern! Hilfe!!!