LabVIEWForum.de - Sortierung von Daten

LabVIEWForum.de

Normale Version: Sortierung von Daten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich muss folgendes Problem lösen: ich habe einen Ordner in dem über 1000 docx-Dateien sind, alle mit unterschiedlichen Namen.
Es gibt aber Dateinamen die gleich anfangen - diese haben immer folgende Struktur:

Bsp.

01_TheoretischePhysik_Numo.docx
01_TheoretischePhysik_Demtroder.docx
02_Thermodynamik_Alex.docx
02_Thermodynamik_Isa.docx
02_Thermodynamik_Mi.docx
03_Quantenmechanik_Alle.docx

usw....

Ich würde gerne jetzt ein Program schreiben welches die Dateien mit der ersten Zahl immer in einen Ordner packt und den Ordner
nach der Zahl benennt.

In dem Beispiel wäre es

Ordner 01:
01_TheoretischePhysik_Numo.docx
01_TheoretischePhysik_Demtroder.docx

Ordner02:
02_Thermodynamik_Alex.docx
02_Thermodynamik_Isa.docx
02_Thermodynamik_Mi.docx

usw.

Ich habe dies bereits auf der Ebene der Pathnames geschreiben, unter Verwendung von ListFolder&Search/Split.

Allerdings weiß ich nicht wie ich einen Ordner mit dem Namen erzeuge und die zugehörigen Dateien dortschiebe.

Wäre sehr dankbar für einen Tipp/Hilfe.
Hallo Patrick,

herzlich willkommen im LabVIEW-Forum!
(Tipp: Email-Adressen im Klartext (oder gar als Username) in einem öffentlichen Forum fordern geradezu nach SPAM…)

Zitat:Ich würde gerne jetzt ein Program schreiben welches die Dateien mit der ersten Zahl immer in einen Ordner packt und den Ordner
nach der Zahl benennt.
Etwas Pseudocode:
Code:
FOR i = 0 to 99
  string := FormatIntoString(i, %02d)
  files := ListFolder(pattern= "^"+string+"*")
  IF ArraySize(files) > 0 THEN
    CreateFolder(string)
    FOR each file in files
       MoveFile(file, folder\file)
    NEXT
  ENDIF
NEXT
Sieht nicht so kompliziert aus…
Hi GerdW,

danke für die schnelle Antwort. Basierend auf dem Pseudocode habe ich sowas gemacht (siehe Anhang).

Ich habs noch nicht verstanden wie ich das FormatIntoString einbringen könnte.

VG

Patrick
Hallo Patrick,

ich sehe nirgends ein IF-THEN-ELSE (Case-Struktur).
Ich sehe nirgends, wo du die Files-Ausgabe vom ListFolder verwendest…
Jetzt habe ich das doch gefunden. Aber warum weiterhin dieses SplitString? War das irgendwo im Pseudocode enthalten???

Irgendwie passt das alles noch nicht zum Pseudocode!

Sowas in der Art sollte eigentlich dabei herauskommen:
[attachment=61765]
danke, muss ich mir aufjedenfall nochmal die basics anschauen

das hat für die ersten 100 gut funktioniert, danke dafür!

Ab hundert sind dann Dateien mit einem Buchstaben davor, also bspw. A01_Thermo_..., S03_Quanten_..., M05_Kern_... usw. (ohne

alphabetische Reihenfolge)

d.h. der Folder müsste den gleichen Namen haben wie die der erste Teil also A01, S03, M05 usw..

ich habe den Code so modifiziert, allerdings schiebt er alles in den ersten Ordner ;(
Hallo Patrick,

Zitat:Ab hundert sind dann Dateien mit einem Buchstaben davor, also bspw. A01_Thermo_..., S03_Quanten_..., M05_Kern_... usw. (ohne alphabetische Reihenfolge)
Aha, also eine geänderte Spezifikation im Vergleich zu deiner ursprünglichen…

Dann musst du auch deine Programmierung entsprechend anpassen!

Zitat:der Folder müsste den gleichen Namen haben wie die der erste Teil also A01, S03, M05 usw..
ich habe den Code so modifiziert, allerdings schiebt er alles in den ersten Ordner ;(
Weil du das so programmiert hast!
In welchen Ordner soll denn "A01_*" geschoben werden? Und in welchen Ordner gehört "M05_*"?
Ich habe zuerst nur für die ersten hundert gedacht und dann habe ich gemerkt dass es noch weitere gibtBig Grin

S01_* soll in einen neuen Ordner S01 geschoben werden, M06_* in M06 usw.
Hallo Patrick,

Zitat:S01_* soll in einen neuen Ordner S01 geschoben werden, M06_* in M06 usw.
Dann musst du das auch so programmieren!

Momentan holst du dir eine Liste ALLER Files und erzeugst einen Unterordner besierend auf dem Dateinamen des LETZTEN Files.
Wenn du die Dateien nach Namen sortieren/verschieben willst, solltest du mit dem Pattern bei ListFolder arbeiten - so wie in meinem Beispiel gezeigt…

Pseudocode:
Code:
nutze ListFolder und bestimme den Namen der ersten Datei
  Erstelle einen Unterordner nach deinem Schema
  benutze ListFolder mit Pattern, um alle Dateien zu finden, die zu der ersten Datei dazugehören
    verschiebe alle diese Dateien in den Unterordner
zurück auf Anfang, bis alle Dateien wegsortiert sind…
Referenz-URLs