Michael: Textdatei mit mehreren Spalten nach wählbarer Spalte sortieren

Hallo und guten Abend,

seit Stunden plage ich mich mit Überlegungen herum, wie ich die Daten einer
Textdatei (SQL kann ich nicht verwenden) nach unterschiedlichen Kriterien
wohl sortiert bekommen könnte.

Meine Überlegung geht in folgende Richtung:

1. Textdatei öffnen:
2. Textdatei bis zur letzten Zeile durchlaufen und einzelne Zeilen einlesen
3. Die einzelnen Zeilen aufsplitten, so dass ich einzelne Arrays bekomme
4. Über den switch-Befehl abfragen, nach welchem Kriterium sortiert werden soll
5. Sortieren

Und hier fangen meine Probleme an:

Ich kann durchaus ein einziges Array sortieren lassen, nur sind dann die übrigen
Spalten der Textdatei nicht auch entsprechend mitsortiert.

Ich muß also folglich irgendeine Möglichkeit finden, beim Sortieren eine Bindung
zwischen den einzelnen Spalten herzustellen, damit zum einen nach dem ausgewählten
Kriterium sortiert wird, zum anderen aber die zuvor zusammengewesenen Spalten auch
hinterher noch zusammen sind.

Vielleicht stehe ich auch nur etwas auf dem Schlauch und denke viel zu kompliziert,
aber aktuell fällt mir keine andere Vorgehensweise ein.

Wie würdet Ihr mein Vorhaben umsetzen?

Danke und Gruß
Michael

  1. Wie würdet Ihr mein Vorhaben umsetzen?

    csv lesen
    http://at.php.net/function.fgetcsv

    nicht mehrere arrays machen sondern ein mehrdimensionales und dieses sortieren
    http://at.php.net/function.array-multisort

    warum willst du das csv überhaupt sortieren? um es später in eine datenbank schreiben zu können oder wieder ausgeben? das wäre hilfreich um dir ggf bessere ideen liefern zu können

  2. Hallo,

    seit Stunden plage ich mich mit Überlegungen herum, wie ich die Daten einer Textdatei (SQL kann ich nicht verwenden) nach unterschiedlichen Kriterien wohl sortiert bekommen könnte.

    1. Textdatei öffnen:
    2. Textdatei bis zur letzten Zeile durchlaufen und einzelne Zeilen einlesen
    3. Die einzelnen Zeilen aufsplitten, so dass ich einzelne Arrays bekomme

    Nein!!!
    Die einzelnen Felder innerhalb einer Zeile bilden doch einen Datensatz, der in sich zusammengehört. Trenne das nicht in unabhängige Datenstrukturen! Bilde stattdessen lieber ein Array aus Arrays - wobei der "äußere" Index die Zeilen- oder Datensatznummer darstellt, der innere die Spaltennummer.

    Ich kann durchaus ein einziges Array sortieren lassen, nur sind dann die übrigen Spalten der Textdatei nicht auch entsprechend mitsortiert.
    Ich muß also folglich irgendeine Möglichkeit finden, beim Sortieren eine Bindung zwischen den einzelnen Spalten herzustellen, ...

    Nein, du darfst diese Bindung, die ja in der Originaldatei existiert, gar nicht erst auflösen.

    So long,
     Martin

    --
    F: Was ist wichtiger: Die Sonne oder der Mond?
    A: Der Mond. Denn er scheint nachts. Die Sonne dagegen scheint tagsüber, wenn es sowieso hell ist.
  3. Grüße,
    ich habe änliches problem mit SQLight gelöst - es kommt auch mit einer kleinen datei mit beliebiger endung aus (brauchst kein "echtes" SQL-support) und hat die wichtigsten sql-funktionen.
    MFG
    bleicher

    --
    __________________________-
    Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
    Lieber bereuen gesündigt zu haben, als nicht sündigen und es später trotzdem bereuen.
    Boccaccio
  4. @@Michael:

    seit Stunden plage ich mich mit Überlegungen herum, wie ich die Daten einer
    Textdatei (SQL kann ich nicht verwenden) nach unterschiedlichen Kriterien
    wohl sortiert bekommen könnte.

    Textdatei? Ach deswegen die Plage.

    Wären die Daten in XML strukturiert, böte sich auch http://de.selfhtml.org/xml/darstellung/xsltelemente.htm#sort@title=XSLT an.

    Live long and prosper,
    Gunnar

    --
    Flughafen in Tempelhof
    findet jeder Hempel doof.
    1. Grüße,

      Wären die Daten in XML strukturiert, böte sich auch http://de.selfhtml.org/xml/darstellung/xsltelemente.htm#sort@title=XSLT an.

      browserunterstützung kann da imho ein wenig weh tun...

      MFG
      bleicher

      --
      __________________________-
      Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
      Lieber bereuen gesündigt zu haben, als nicht sündigen und es später trotzdem bereuen.
      Boccaccio
      1. @@bleicher:

        Wären die Daten in XML strukturiert, böte sich auch http://de.selfhtml.org/xml/darstellung/xsltelemente.htm#sort@title=XSLT an.

        browserunterstützung kann da imho ein wenig weh tun...

        Nicht bei serverseitiger Transformation.

        BTW, eine clientseitige Sortierung mit JavaScript könnte _zusätzlich_ implementiert werden, um die unnötige erneute Übertragung der Daten vom Server zum Client überflüssig zu machen.

        Live long and prosper,
        Gunnar

        --
        Flughafen in Tempelhof
        findet jeder Hempel doof.