Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
21.10.2013, 15:58 (Dieser Beitrag wurde zuletzt bearbeitet: 21.10.2013 15:59 von ahebauer.)
ich möchte Messreihen in einer Ordnerstruktur speichern.
Zusammengehörige Messreihen werden in einem Ordner mit einer eindeutigen ID gespeichert.
Diese Ordner mit den Messreihen sollen dann wiederrum tageweise in Ordnern abgelegt werden.
Pro Tag werden ca. 60 Messreihen erstellt, d.h. also 60 Ordner angelegt.
Nun möchte ich in LabVIEW nach einer bestimmten ID (d.h. Ordner) suchen. Mir ist jedoch
nicht bekannt, wann die entsprechende Messreihe abgelegt wurde. Hat jemand eine Idee,
wie man den besagten Ordner findet. Es müsste eine Funktion sein,
die nicht nur innerhalb eines Ordners nach einem Muster (also dem Namen des Ordners) sucht,
sondern innerhalb einer ganzen Struktur. Die VIs 'Recursive File List' oder 'List Folder' erfüllen diese
Funktion leider nicht.
Vielen Dank für eure Hilfe.
Michael
22.10.2013, 07:51 (Dieser Beitrag wurde zuletzt bearbeitet: 22.10.2013 07:52 von Y-P.)
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
RE: Ordner in Ordnerstruktur suchen
. . . . . . . . .
Kannst Du mal ein Bsp. machen, wie die Ordner aussehen?
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Nun will ich die Messreihe einer bestimmten ID in LabVIEW laden, kenne jedoch
nicht das Datum, an dem die Messreihe erstellt wurde. Theoretisch könnte in mir alle
Ordner des Hauptverzeichnisses (also die Ordner mit der Datum-Benennung) ausgeben lassen,
um dann wiederrum deren Unterordner automatisiert (For-Schleife) ausgeben zu lassen und dann
in diesem Datensatz aller Unterordner die gesuchte ID zu suchen. Ich hoffe jedoch, dass LabVIEW
hier ein Tool bereit hält (ähnlich wie die VI 'List Folder', bei der man ein Muster vorgeben kann, nach
dem gesucht wird - jedoch können hier nicht die Unterordner der Datums-Ordner durchsucht werden).
Als Ausgabe benötige ich den Pfad, unter dem ich den Ordner mit der entsprechenden ID finde, um
die Messreihe dann wieder zur Anzeige zu bringen.
Grüße
Michael
22.10.2013, 08:43 (Dieser Beitrag wurde zuletzt bearbeitet: 22.10.2013 08:48 von GerdW.)
mit RecursiveFileList alle Unterordner auflisten und selbst nach dem passenden Pfad zu suchen ist zu schwierig? Es gibt da diverse String-Suchfunktionen...
Ich habe grade mal einen Ordner mit ca. 500 Unterordnern mit dem VI RecursiveFileList ausgelesen
(ohne die FOR-Schleifen etc, habe nur die eine VI ausgeführt). Übersehen hatte ich, dass mit
dieser Funktion Unterordner aller Unterebenen ausgegeben werden (For-Schleifen werden also nicht benötigt).
Jedoch benötigt die VI für das oben genannte Beispiel mit 500 Ordnern schon 6 Sekunden zur Ausführung
(auf einem Intel i5, Windows 7) - da in unserer Anwendung wesentlich größere Ordnerstrukturen vorkommen werden,
ist die Bearbeitungsdauer jetzt schon zu lang.
Gibt es vielleicht noch eine andere Möglichkeit?
22.10.2013, 13:09 (Dieser Beitrag wurde zuletzt bearbeitet: 22.10.2013 13:10 von Trinitatis.)
wie wäre es denn, wenn du bei der Erstellung jedes Ordners ein indizierungs file mitschreibst und dort einfach nachsiehst. Geht dieses file mal verloren, dann musst du eben einmal die Gesamtstruktur durchwühlen lassen (offline).
ich fürchte, selbst wenn LV die von dir gewünschte Mustervorgabe mitbrächte, kämest du um den workaround schon aus Zeitgründen nicht umhin, wenn es denn um soviele Ordner geht, wie du beschreibst.
ich arbeite selten mit der RecursiveFilelist, deshalb der Lapsus mit der FOR-Loop.
Du musst doch nur eine Ordnerebene abklappern: nimm die normale List-Funktion in der Konstruktion wie in meinem Snippet. Das sollte schneller arbeiten, da eben auf die Rekursion verzichtet wird.
Außerdem: wie lange braucht der Explorer, um die 500+ Ordner anzuzeigen?
keine Ahnung ob meine Antwort zu spät kommt oder ob du schon eine andere Lösung gefunden hast. Ich hatte mir vor kurzem ein VI gebastelt, welches rekursiv alle Ordner, Dateien etc. samt Pfadangaben für ein bestimmtes Verzeichnis ausliest. Ich hab es auf Rechenzeit getestet. Für alle Ordnerstrukturen und Dateien auf meinem Desktop (und das sind insgesamt 800 Ordner und 7000 Dateien) braucht das VI knappe 1,1 Sekunden. Am Ausgang stehen dir dann Arrays mit allen Ordnernamen und Pfaden zur Verfügung. Wenn du einen Suchbegriff eingibst, wird dir am Programmende bei einem positiven Fund der entsprechende Pfad zur Datei oder zum Ordner angezeigt.
Ich stell das VI mal hier rein...ich übernehme jedoch keine Verantwortung für die Nutzung (aufgrund von Zugriffsberechtigungen kann schon mal abstürzen, für deine Anwendung wird es aber funktionieren). Wenn es funktioniert, würde ich mich freuen wenn du dich nochmal bei mir meldest.