Sortieren klappt nicht immer
Philipp
- perl
Hallo,
ich habe mit folgendem Code das Problem, dass er nicht immer sortiert, je nachdem nach was ich sortiere. Im Archiv habe ich speziell dazu nichts gefunden.
Ich komme einfach nicht drauf, was nicht stimmt. Bitte helft mir.
Ich lese aus einer Datei die Zeilen in ein Array. Die Zeilen enthalten durch Semikolon getrennte Werte. Ein Teil der Werte ist nicht angegeben.
@daten[10] könnte beispielsweise so aussehen: Wert1;Wert2;Wert3;;;;;Wert8
Die ersten 3 Werte sind immer vorhanden, aber nicht unbedingt die folgenden. Wenn ich nach der 3 Spalte sortiere funktioniert alles einwandfrei. Wenn ich nach der 6 Spalte sortiert er mir etwas zusammen, dass ich gar nicht nachvollziehen kann.
Zuerst dachte ich, dass das Problem in den leeren Werten liegt, aber die Aufspaltung der Zeilen funktioniert einwandfrei und die Tabelle kommt auch so wie sie soll raus.
@sortiert = sort { (split(/;/, $a))[$sortieroption] cmp (split(/;/, $b))[$sortieroption] } @daten;
print "<table border=1>";
foreach $zeile (@sortiert) {
@werte = split (/;/,$zeile);
print "<tr>";
foreach $eintrag (@werte) {
print "<td>",$eintrag,"</td>";
}
print "</tr>\n";
}
print "</table>";
Danke
Philipp
Hi,
Wenn ich nach der 6 Spalte sortiert er mir etwas zusammen, dass ich gar nicht nachvollziehen kann.
Beispiel? Nenn doch mal ein @daten (möglichst nicht viel mehr als 10 Zeilen ;-)) mit dem sich ergebenden @sortiert.
Cheatah
Hallo Cheatah
Danke für das nachschauen auf der Adresse die ich Dir gemailt habe. Du hast Recht, es funktioniert. Warum ist mir allerdings grad noch schleierhaft, da ich eigentlich nichts verändert habe, ausser einem Kommentarblock zu entfernen. Irgendwo werde ich wohl doch etwas korrigiert haben.
Danke nochmals für deine Bemühungen
Gruss
Philipp :)