LabVIEWForum.de
Sortieralgorithmus - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenbank & File IO (/Forum-Datenbank-File-IO)
+---- Thema: Sortieralgorithmus (/Thread-Sortieralgorithmus)



Sortieralgorithmus - KRS - 13.11.2014 10:15

Hey, ich bin gerade dabei, dass ich aus einem Ordner Dateien auslesen möchte.
Die Dateien werden in der Form:
data_141110_2021_0001_00
geschrieben, wobei die erste Zahl das Datum ist, die zweite die Zeit und die dritte, die hochgezählte Zahl der Messdatei ist.

Mein Ziel ist es, dass ich diese Dateien nach ihrem Erstellungszeitpunkt in ein Array schreiben möchte (letzte zuerst).
Da ich bisher nirgends gefunden habe, ob meine Vermutung richtig ist, dass die Funktion "Rekursive Dateiliste" die Daten (alphabetisch) nach Zahlen (aufsteigend) sortiert, frage ich euch, ob ihr das genau wisst.
Weil wenn der Algorithmus das nicht verlässlich macht, muss ich die Dateien ja nach dem Auslesen sortieren, bevor ich sie in das Array schreibe, was aber vielleicht auch nicht nötig ist.


RE: Sortieralgorithmus - jg - 13.11.2014 13:37

Das kannst du sicher schnell ausprobieren!
Meine Antwort also: Trial and Error...

Gruß, Jens


RE: Sortieralgorithmus - KRS - 13.11.2014 14:32

Hatte ich ja auch.
Nur kann ich es ja nicht sicher sagen, da ich nicht weiß wie die Funktion den Ordner ausliest. Und ich nicht weiß wie es in dem Ordner abgelegt ist. das was ich in dem Explorer sehe ist ja nicht zwingend die Struktur in der es abgelegt ist.
Um es anders zu sagen. Es ordnet alles so wie ich will. Nur kann ich ja nicht sagen, "isso, weil: sieht gut aus in meinen Experimenten" und dann sucht es sich beim nächsten mal die Dateien anders heraus, weils in den Beispielen nur Zufällig geklappt hat.
Ich suche im Prinzip vielleicht auch nur ein "NachschlagewerK" wo ich nachschauen kann, nach welchen Gesetzen eine Funktion handelt. Wenn jemand für mich eine Funktion schreibt....


RE: Sortieralgorithmus - Trinitatis - 13.11.2014 19:01

(13.11.2014 10:15 )KRS schrieb:  Hey, ich bin gerade dabei, dass ich aus einem Ordner Dateien auslesen möchte.
Die Dateien werden in der Form:
data_141110_2021_0001_00
geschrieben, wobei die erste Zahl das Datum ist, die zweite die Zeit und die dritte, die hochgezählte Zahl der Messdatei ist.

Mein Ziel ist es, dass ich diese Dateien nach ihrem Erstellungszeitpunkt in ein Array schreiben möchte (letzte zuerst).
Da ich bisher nirgends gefunden habe, ob meine Vermutung richtig ist, dass die Funktion "Rekursive Dateiliste" die Daten (alphabetisch) nach Zahlen (aufsteigend) sortiert, frage ich euch, ob ihr das genau wisst.
Weil wenn der Algorithmus das nicht verlässlich macht, muss ich die Dateien ja nach dem Auslesen sortieren, bevor ich sie in das Array schreibe, was aber vielleicht auch nicht nötig ist.



Hallo,

du kannst dir jeden Namen der Dateiliste aufspalten in seine 3 Anteile und diese zusammen in ein Cluster legen und daraus ein 1S-Cluster-Array erstellen. Dieses kannst du dann über 1D-Array sortieren lassen, wobei das 1. Clusterelement die Reihenfolge vorgibt.
In deiner Anzeige kannst du es dann wider zurückwandeln.

Gruß, Marko


RE: Sortieralgorithmus - jg - 14.11.2014 01:00

Kannst natürlich auch einfach ein Sort 1D Array verwenden.

Gruß, Jens


RE: Sortieralgorithmus - Lucki - 14.11.2014 09:34

(14.11.2014 01:00 )jg schrieb:  Kannst natürlich auch einfach ein Sort 1D Array verwenden.
Das sehe ich auch so. Eine einfache lexigraphische Anordnung von Strings wie diesen:
data_141110_2021_0001_00
liefert doch schon genau die richtige zeitliche Reihenfolge. Komplizierte Manipulationen, Clusterung oder was weiß ich sind doch unnötig. Denn: Derjenige, der sich dieses Dateinamen-System ausgedacht hat, war schlau und hat schon im Auge gehabt, dass sich die Dateien in einem nomalen Windows-Verzeichnis bei Anzeige nach "Namen" in zeitlicher Reihenfolge darstellen.
Und mehr noch: Auch die 1D-Sortierung könnte überflüssig sein. Denn wenn man aus dem Ordner mit den Dateien eine Liste mit den Dateinamen erstellt, dürfte es einigermaßen schwierig sein, dass diese Liste die Namen nicht von vornherein in lexigraphischer Reihenfolge (und damit in aufsteigender zeitlicher Reihenfolge) enthält.