VBA Excel 2007 - Stringarray sortieren

fdsonne

Legende
Thread Starter
Mitglied seit
08.08.2006
Beiträge
35.863
Ort
SN
Hallo Leute,
ich steh grad hier vor nem mächtigen Problem, es geht darum eine bestimmte Verzeichnisstruktur auf einem bestimmten Pfad der Festplatte auszulesen...
Die Ordnernamen haben alle die selbe Syntax:
PHP:
1.11. Rootordner
  1.11.1 erster Ordner, erste Ebene
    1.11.1.1 erster Ordner, zweite Ebene
    1.11.1.2 zweiter Ordner, zweite Ebene
    1.11.1.3 dritter Ordner, dritte Ebene
    ...
  1.11.2 zweiter Ordner, erste Ebene
  1.11.3 dritter Ordner, erste Ebene
  ...
  1.11.10 zehnter Ordner, erste Ebene
  1.11.11 elfter Ordner, erste Ebene
Wobei hier der Rootordner den obersten Ordner darstellt, und die anderen Ordner im Rootordner liegen...
Wie weit das ganze in die Tiefe geht ist nicht bekannt, weil sich das dynamisch ändern kann...


Mein Problem ist, ich lese diese Ordnerstruktur in VBA über den DOS Befehl "DIR" aus, das klappt auch soweit, aber dieser Befehl sortiert mir nicht richtig die Ordnernamen...
Es kommt also heufig vor, das wie im Beispiel oben, "1.11.1 erster Ordner, erste Ebene" richtigerweise an erster Stelle steht, daraufhin dann aber der Ordner "1.11.10 zehnter Ordner, erste Ebene" kommt...
Sprich er sortiert die 10, 11 usw. vor die 2, was nicht richtig ist...

Das ganze sollte vor der Ausgabe in die Exceltabelle direkt im Array sortiert werden können...
Leider kann ich die Ausgabe des DIR Befehls nicht weiter beeinflussen, der dortige Sortierparameter "/O:N" wirkt nicht!



Gibt es irgendwie ne Möglichkeit das ganze sortieren zu lassen?
Ne einfache Quicksort oder Bubblesort Methode kann das nicht, die Excelsortierfunktion macht mir auch die 10 vor die 2...

Jemand ne Idee?

Aktuelle Ergebniss der Excelausgabe sieht folgendermaßen aus:
Man sieht sehr schön, die Sortierung klappt wunderbar, außer der Ordner 4.34.4.1.10 kommt vor dem Ordner 4.34.4.1.2, was nicht sein darf...
unbenanntvdt3.png



Das ganze soll schlussendlich ein in Excel automatisch erzeugtes Inhaltsverzeichniss einer elektronischen Dokumentation werden, der User kann schlussendlich auf den Ordnernamen klicken und bekommt ein Fenster aufgeklappt mit dem Inhalt aller Dateien dieses Ordners und kann diese darin direkt öffnen.

Grüße
fdsonne
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
die sortierung ist schon komplett richtig, .10 ist nunmal kleiner als .2. Was du suchst ist wohl was man man allgemein als "natural ordering" bezeichnet. Das reicht hoffentlich auch schon als Stichwort, ich denke excel sollte das irgendwie koennen.
 
Ja mir ist schon klar warum und wieso die 10 vor der 2 steht...
Nur hilft mir das ganze nicht ganz so sehr weiter... Es gilt ja das Problem zu lösen, dein Stichwort bringt mich nicht wirklich weiter, zumindest spuckt mir google nichts brauchbares aus :(
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh