Hallo,
ich möchte in einem Programm eine Liste aller Dateien eines Ordners
anzeigen. Natürlich alphabetisch sortiert. Jetzt sortiert Windows aber
auf eine seltsame Weise. Kann mir jemand einen Link geben, wo ich genau
alle Sortierregeln finden kann, die Windows XP zum sortieren der
Dateinamen verwendet?
Vielen Dank!
Hängt von der Windows Version ab. Man kann es glaube ich sogar umstellen
ob z.B. Zahlen als
1
2
3
4
10
11
20
30
usw.
oder als
1
10
11
2
20
3
30
4
usw.
sortiert werden. Beide Varianten habe ich bei WinXP schon gesehen.
@Benedikt
Ich weiß, man kann das umstellen, aber ich will ja gerade, dass der
Benutzer nichts umstellen muss und in meinem programm die Liste der
dateinamen so sieht, wie sie z.B. im Windows-Explorer angezeigt werden.
@Sven
Na, was soll das? Hab ich doch geschrieben! Es geht um Windows XP..klar
genug oder willst Du noch eine Versionsnummer? Programmiersprache ist
doch egal, wenn ich nach den Sortierregeln frage. Oder meinst Du,
windows hat für jede Programmiersprache eine andere Regel um zum
gleichen Ergebnis zu kommen? Und welches Programm? Na, für meins. Oder
willst Du wissen, wo man in Windows die Verzeichnisse üblicherweise
ansieht? Na im Windows-Explorer!
Oh Herr...
@Benedikt
Windows-XP sortiert Dateinamen abhängig vom Zahlenwert. Das habe ich
inzwischen auch im Griff. Aber wieso wird so sortiert:
ABA
-ABA
A-BA
-A-BA
ABA-
Da komm ich nicht ganz mit...
SiMa wrote:
> @Sven> Na, was soll das? Hab ich doch geschrieben! Es geht um Windows XP..klar> genug oder willst Du noch eine Versionsnummer?
Schön, dann schmeiß ich mal die Kristallkugel an. Les den Beitrag von
Benedikt, vielleicht geht dir dann irgendwie ein Licht auf.
> Programmiersprache ist doch egal, wenn ich nach den Sortierregeln frage.
Wenn du das meinst, wird das wohl so sein.
> Oder meinst Du, windows hat für jede Programmiersprache eine andere Regel> um zum gleichen Ergebnis zu kommen?
Windows sortiert garnix. Scheinbar hast du nicht kapiert, wo der
Unterschied zwischen "Windows" und "Dateisystem" oder "Anzeige" besteht.
Dem Windows ist es doch grad mal pupsegal, wie der Programmierer dem
Anwender die Dateinamen präsentiert.
> Und welches Programm? Na, für meins.
Wie aussagekräftig.
> Oder willst Du wissen, wo man in Windows die Verzeichnisse üblicherweise> ansieht?
Du bist ein Supertyp, man! Und was hat das dann mit "deinem" Programm zu
tun?
> Na im Windows-Explorer!
Wenn du meinst. Dann klick doch auf die Spaltentitel in der
detaillierten Ansicht und setz dich mal mit "alphabetischer" und
"natürlicher" Sortierung auseinander.
> Oh Herr...
Sag mal gehts noch? Stell konkrete Fragen, dann kriegste konkrete
Anworten.
Interessant. Das mit dem - kannte ich noch nicht.
Es scheint so, als ob Windows das - Zeichen erstmal ignoriert, und nur
dann berücksichtigt, wenn ansonsten ähnliche Zeichenketten vorkommen.
Ansonsten muss ich leider passen, ich sortiere die Namen immer
alphabetisch, das reicht mir.
SiMa wrote:
> @Sven> Interessiert mich nicht, dass Du nicht in der Lage bist, mitzudenken.> Behalt Dein Supergesülze bitte für Dich!
Jetzt reichts aber.
SiMa wrote:
>ich möchte in einem Programm eine Liste aller Dateien eines Ordners>anzeigen.
Ja, in welchem Programm denn?
>Natürlich alphabetisch sortiert.
Alphabetisch und natürlich oder nur alphabetisch?
>Jetzt sortiert Windows aber auf eine seltsame Weise.
Ja, das kann sein. Aber Windows sortiert garnicht, sondern das tut z.B.
die Komponente ("Steuerelement", "Control"), welches sich die Liste
ungeordnet vom System besorgt und dann anzeigt.
>Kann mir jemand einen Link geben, wo ich genau alle Sortierregeln finden kann,http://msdn.com>die Windows XP zum sortieren der Dateinamen verwendet?
S.o. Welches XP? Welche Konfiguration? Sprache? Regionalzeug?
Wenn dir die 41000 Treffer bei MSDN nicht langen, kauf dir lieber so ein
"Windows für Dummies"-Buch oder LMAA.
Er kanns nicht lassen....kopfschüttel...
Müssen eigentlich in jedem Forum solche Erbsenzähler rumspringen, die
alles sinnlos runterziehen und von der eigentlichen Frage ablenken?
SiMa wrote:
> Er kanns nicht lassen....kopfschüttel...> Müssen eigentlich in jedem Forum solche Erbsenzähler rumspringen, die> alles sinnlos runterziehen und von der eigentlichen Frage ablenken?
Jetzt ists aber wirklich genug! Was willst du denn wissen? Du hast nach
einem Link gesucht, näher als über MSDN kommstu nicht an den Hersteller
ran.
Windows sortiert immer noch keine Dateinamen selbst, hat sich in den
letzten 5 Minuten nix dran geändert. Das NTFS hat noch son paar
Sortiertricks auf Lager, vielleicht meinste das ja.
In den ganzen Teilen von Windows sind zig verschiedene Sortiermethoden
verbaut, darum müsste man wissen, WO du die Dateien anzeigen lassen
möchtest. Ist das zuviel verlangt?
Hallo,
ich nehme an, Du suchst die Dateien in dem Verzeichnis mit FindFirst und
FindNext, in diesem Fall könnte man fast sagen, ist das Ergebnis
willkürlich.
Persönlich würde ich sagen es ist die Reihenfolge, mit der die Dateien
angelegt wurden bzw. im Directorytabellen durch Windows eingetragen
wurden.
Um das Ergebnis also sortiert angezeigt bekommen willst, musst Du Dir
Deine eigenen Sortierroutinen schreiben. Die kannst Du Deinen
Bedürfnissen anpassen. Also auch genauso durchführen lassen wie es
Windows macht.
Wo allerdings geschrieben steht, wie genau diese Sortierfolge ist, wirst
Du tatsächlich in MSN nachsehen müssen. Bei der Anzahl von Treffer, habe
ich leider keine Zeit Dir die korrekte Seite herauszusuchen.
Gruß
Frank
@Frank
Genau da liegt mein Problem. Ich kann keine Regeln finden, wie in
Windows die Dateinamen standardmäßig sortiert werden. Überall finde ich
Hinweise, dass Ziffern über den Zahlenwert sortiert werden, aber nicht,
wieso das von mir oben Gelistete so sortiert wird.
Die 41000 genannten Treffer sind so sinnvoll, als hätte ich nach dem
Buchstaben "A" gesucht. Da auch ich nicht 41000 Seiten durchstöbern
kann, dachte ich, in einem Forum könnte einer ja vielleicht was
genaueres zu meiner Frage wissen und mir helfen.
Hallo,
es ist schon erstaunlich, wie SiMa mit Hilfswilligen umgeht.
Aber in einer Art hat er recht, es ist egal, welches BS und welche
Programmiersprache man verwendet.
Wenn ich ein Programm schreibe, lege ich durch die Programmierung die
Sortierung fest.
Das hat der Programmierer des Datei-Explorers auch gemacht.
Und der Programmierer des FileList-Controls in Visual.Net hat es
vielleicht
anders gemacht.
Wenn ich ein Dir. auslese, bekomme ich von Haus aus keine Sortierung,
sondern muß mich selbst drum kümmern und habe dafür auch alle
Freiheiten.
Gruß
Ralf-rainer Ploog wrote:
> Hallo,>> es ist schon erstaunlich, wie SiMa mit Hilfswilligen umgeht.
Eben.
> Aber in einer Art hat er recht, es ist egal, welches BS und welche> Programmiersprache man verwendet.
Na, das sag ich doch die ganze Zeit schon. Aber wenn er damit nicht
konkreter wird, kann man ihm wohl schlecht eine konkrete Antwort geben,
oder?
> Wenn ich ein Programm schreibe, lege ich durch die Programmierung die> Sortierung fest.
Meine Rede.
> Das hat der Programmierer des Datei-Explorers auch gemacht.> Und der Programmierer des FileList-Controls in Visual.Net hat es> vielleicht> anders gemacht.> Wenn ich ein Dir. auslese, bekomme ich von Haus aus keine Sortierung,> sondern muß mich selbst drum kümmern und habe dafür auch alle> Freiheiten.
Eben.
Schaltet mal Euer Hirn ein: Wenn ich schreibe, dass ich die gleiche
Sortierreihenfolge haben will, wie sie Windows-XP anzeigt, dann ist
damit wohl klar gesagt, dass es scheißegal ist, in was ich das dann
später programmiere. Gleich ist gleich!
Nur arrogante Schnösel sind der Meinung, dass der Programmierer
bestimmt, was der Kunde bekommt und basta.
Und wenn ich sage, dass mir das Windows anzeigt, dann meine ich damit
natürlich das "nackte" Windows und nicht irgendetwas in Visual-net oder
so. Zuviel zum Mitdenken?
Und tickt es eigentlich noch richtig? Ich habe eine normale, freundliche
Frage gestellt und dann gibts erstmal von diesem Sven eine ziemlich
unfreundliche Gegenfrage und später dann den Hinweis "LMAA". Wer ist
jetzt hier der Nette?
Selstsamerweise haben Benedikt und Frank sofort verstanden, um was es
geht.
>Wenn ich ein Dir. auslese, bekomme ich von Haus aus keine Sortierung...
So ein Blödsinn. NTFS sortiert eben auch schon
Aber ich finds niedlich, wie dieser Sven es einfach nicht lassen kann,
hier ständig nachzulesen und zu kommentieren. Brauchst Du Beschäftigung?
> Na, das sag ich doch die ganze Zeit schon.
Ja, und SiMa sagt das auch schon die ganze Zeit.
Ich verstehe die ganze Aufregung nicht. Die Frage war doch klar und
deutlich formuliert: Im WindowsXP-UI kann man sich Inhalte von
Directories sortiert anzeigen lassen. Die Frage ist jetzt, nach welchem
Muster die Sortierung geschieht.
Für die Antwort benötigt man ganz sicher nicht die Angabe einer Sprache.
Zudem müsst Ihr nicht wissen, wer wann was selber machen zu machen hat.
Und Ihr müsst nicht wissen, woher SiMa die Daten hat. Wenn man nur
wissen will, wie die Daten im Windows-UI sotiert werden, programmiert
man nicht eine einzige Zeile und hat auch noch gar keine Daten
gesammlet.
Ich kann überhaupt nicht verstehen, dass ausser Benedikt niemand die
Problemstellung versteht. So schwierig ist das doch gar nicht. Da
verstehe ich eher SiMas Reaktion auf das Herumgerede um den heißen Brei.
Und so langsam geht mir auch mir die Hutschnur hoch.
Und nun will ich mich der Allgemeinheit anschliessen und ebenfalls
nichts sachdienliches zum Thema beitragen. Die Antwort kenne ich nämlich
leider auch nicht.
SiMa wrote:
> Schaltet mal Euer Hirn ein: Wenn ich schreibe, dass ich die gleiche> Sortierreihenfolge haben will, wie sie Windows-XP anzeigt, dann ist> damit wohl klar gesagt, dass es scheißegal ist, in was ich das dann> später programmiere. Gleich ist gleich!
Jo, und ist alles auf MSDN.com dokumentiert. Musst halt suchen. Reicht
dir das jetzt?
> Nur arrogante Schnösel sind der Meinung, dass der Programmierer> bestimmt, was der Kunde bekommt und basta.
Ganz genau! Und wenn der Programmierer eine Funktion nicht einbaut
kriegt der Kunde sie trotzdem, das machen dann kleine Mainzelmännchen.
> Und wenn ich sage, dass mir das Windows anzeigt, dann meine ich damit> natürlich das "nackte" Windows und nicht irgendetwas in Visual-net oder> so. Zuviel zum Mitdenken?
Das "nackte" Windows... MSDN.com
> Und tickt es eigentlich noch richtig? Ich habe eine normale, freundliche> Frage gestellt und dann gibts erstmal von diesem Sven eine ziemlich> unfreundliche Gegenfrage
Du, wenn dich das schon verletzt, tuts mir ja furchtbar Leid. Aber das
ist so der gängige Standard-Konter auf wässrige Fragen.
> und später dann den Hinweis "LMAA". Wer ist jetzt hier der Nette?
Oh, verzeih.
> Selstsamerweise haben Benedikt und Frank sofort verstanden, um was es> geht.
Hastus denn jetzt kapiert?
>>Wenn ich ein Dir. auslese, bekomme ich von Haus aus keine Sortierung...> So ein Blödsinn. NTFS sortiert eben auch schon
Dann ist doch alles in Butter? Die Suchseite bei MSDN (mein Link) da
steht schon auf der ersten Seite ein Verweis auf die Sortierung des
NTFS.
> Aber ich finds niedlich, wie dieser Sven es einfach nicht lassen kann,> hier ständig nachzulesen und zu kommentieren. Brauchst Du Beschäftigung?
Jubb, brauch ich.
Übrigens: Google, erste Seite "Windows Dateinamen Sortierung":
http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.de.german.entwickler.dotnet.vb&tid=18930085-e2f1-46c4-b2e7-a96d53bcd915&cat=&lang=&cr=&sloc=&p=1
> Jo, und ist alles auf MSDN.com dokumentiert. Musst halt suchen. Reicht> dir das jetzt?
Ja, das ist vermutlich genau DIE Antwort, die ihm reicht und die er
(speziell von dir :-) sowieso hören wollte.
;-)
@Sven
Gääähn...Hättest Du auch nur den Hauch einer Ahnung, wüsstest Du, dass
die Sortierung von NTFS eben nicht mit der Sortierung vom
Windows-Explorer übereinstimmt.
Und vielen Dank für den Link, den Google als erstes ausspuckt. Hast Du
noch mehr so Unbrauchbares? Da steht nämlich rein gar nichts über oben
geschildertes Problem drin. Aber dazu hättest Du das lesen und auch
verstehen müssen...etwas viel für Heute vermutlich?!
Du beweist hier sehr deutlich, dass Du aber auch gar keine Ahnung hast.
SiMa wrote:
> @Sven> Gääähn...Hättest Du auch nur den Hauch einer Ahnung, wüsstest Du, dass> die Sortierung von NTFS eben nicht mit der Sortierung vom> Windows-Explorer übereinstimmt.
Hab ich das behauptet? Nö.
> Und vielen Dank für den Link, den Google als erstes ausspuckt. Hast Du> noch mehr so Unbrauchbares? Da steht nämlich rein gar nichts über oben> geschildertes Problem drin. Aber dazu hättest Du das lesen und auch> verstehen müssen...etwas viel für Heute vermutlich?!
Wenn die Links, die man so pi-mal-Daumen findet, ja alle so unbrauchbar
sind, dann frag dich doch mal, woher sonstwer eine Antwort auf deine
Frage haben soll.
> Du beweist hier sehr deutlich, dass Du aber auch gar keine Ahnung hast.
Hihi, von wem muss ich mir das eigentlich anhören? Ich beweise garnix,
sowas brauch ich net für mein Ego... hab lediglich Spaß dabei, Trolle
zufüttern (was ja eigentlich wiederum nicht so toll ist). Aber es is
interessant, zu beobachten, was manche mit dem Internet anstellen...
Vielleicht hilfts dir ja, wenn man dich mit der Nase draufknallt:
http://msdn.microsoft.com/de-de/library/ms230117(VS.80).aspx
Die Seite enthält übrigens auch Links, denen man folgen kann...
SiMa wrote:
> hihi....
Du sprichst mir aus der Seele...
Schonmal probiert eine EMail an MS zu schicken, nur so als Gedanke?
Vielleicht können dies ja noch kleinschrittiger erklärn...
Ich klink mich aus. (Komm schon -- sag es!)
Sven, deine Links erklären in keiner Weise wie die Dateinamen in einem
Windows-Explorer gelistet werden, wenn man sie lexikalisch aufsteigend
sortieren lässt!
Genausogut hättest du auf
http://www.unicode.orghttp://www.google.de
oder ähnliche nutzlose Links verweisen können.
Windows sortiert meine Testdateien wie folgt:
-.txt
1.txt
2.txt
a.txt
aber auch:
1a.txt
1-a.txt
2a.txt
2-a.txt
Wie erklärst du dir das Verhalten mit den von dir geposteten Funktionen?
Wenn man der Schnitzeljagd durch deine Artikel folgt gelangt man
hierher, wo sich wenigstens die Option findet um Sonderzeichen von der
Sortierung auszuschließen:
http://msdn.microsoft.com/de-de/library/system.globalization.compareoptions(VS.80).aspx
Zudem wird in dem Artikeln mit keinem Wort erklärt, dass der
Windows-Explorer diese Funktionen überhaupt nutzt!
http://de2.php.net/manual/en/function.strcmp.php
wäre etwa genauso informativ gewesen.
Die Frage nach der Programmiersprache ist echt müßig, wenn nach einem
Algorithmus gefragt wurde!
Bei mir ist gestern genau die selbe Frage aufgetreten, als ich gemerkt
habe, dass Eclipse die Dateien im Workspace anders sortiert als der
Explorer und ich würde mich über konstruktive Lösungsversuche freuen.
Also endlich mal zur Sache:
Soweit ich es feststellen konnte, funktioniert mein Algorithmus mit
einer Ausnahme. Da ich es später auf einem MC realisieren möchte, habe
ich mich auf 16-Bit beschränkt. Sieht vielleicht nicht so hübsch aus,
aber läuft schnell. Ich gehe wie folgt vor:
1. Original-String in Uppercase wandeln. Nenne ich jetzt STR1.
2. Kopie davon nehmen und alle gleichlautenden Zeichen durch den
Originallaut ersetzen, also z.B. Á durch A ersetzen, Ä auch durch A
ersetzen. Resultat nenne ich jetzt STR2.
3. Alle Binärwerte aller Zeichen der Kopie um 0x100 erhöhen.
4. Alle führenden Nullen von Ziffernfolgen aus STR2 raufwerfen.
5. Alle Ziffern in den Binärwert ändern, also z.B. '3' in 0x03.
6. Bei Ziffernfolgen zählen, wie viele Stellen diese Zahl hat und bei
der ersten Ziffer mit 0x10 multipliziert aufadieren, z.B. wird so aus
'242' dann 0x22,0x04,0x02
7. Dann Kopien simpel binär sortieren. Wenn zwei Zeichenketten identisch
sind, dann zugehörige STR1-Strings binär vergleichen.
Das ist grob der Algorithmus. Den exakten Code traue ich mich nicht zu
veröffentlichen, sonst haut mich sicher der Übergott Sven.
Funktioniert (soweit ich getestet habe) bis auf eine Ausnahme: das
Minus-zeichen. Wie das einzusortieren ist, versteh ich noch nicht (siehe
mein obiges Beispiel)
Unter Windows gibts ganz einfache Betriebssystem-Funktionen um alle
Dateinamen anzuzeigen. Meistens sind das Funktionen wie GetFirst und
GetNext (oder irgend sowas). Die Reihenfolge ist dann idR die
Reihenfolge der Erzeugung.
Um die Dateinamen nun zu sortieren, werden ebenfalls BT-Funktionen
eingesetzt. So werden under Windows (jedem Windows!!) in allen
Combo/List-Boxen ein und die selbe Funktion verwendet. Und da Libs
wie C#/Net,FoundationClasses etc. auf diesen Widgets aufbauen, sortiert
Windows in Fenstern immer gleich. Sortiert wird glaube ich nach
ASCII-Reihenfolge, was auch die Reihenfolge in Benedikt's zweitem
Beispiel erklärt (erstes Beispiel habe ich noch nie gesehen, aber man
weiss bei Windows ja nie).
Willst Du also wie in Windows sortieren, so must Du entweder eine Combo
oder ListBox mit Sortier-Flag erzeugen oder aber die BT-Sortierfunktion
finden (weiss das es sie gibt, aber nicht wie man sie findet). Du kannst
auch alternativ in VisualBasic,C# etc. das gleiche machen, sortiert
wird dann immer gleich.
Aber laut Superstar Sven wird in jedem Programm anders sortiert?!
Okay, aber ich suche einen Algorithmus, den ich später auch auf einem MC
laufen lassen kann, also ohne Windows-"Hilfsroutinen" .
Hi
>Um die Dateinamen nun zu sortieren, werden ebenfalls BT-Funktionen
eingesetzt. So werden under Windows (jedem Windows!!) in allen...
Es gibt eine BT-Funktion 'DlgDirList'. Das ist Windows-spezifisch.
Listen-Objekte sind von der Programmiersprache abhängig, und gehorchen
den jeweiligen Regeln. Beispielsweise nutzt Delphi einen eigenen
Sortieralgorithmus für Listen.
>Okay, aber ich suche einen Algorithmus,....
Dann solltest du mal die Reihenfolge analysieren und einen
entsprechenden Algorithmus selbst schreiben!
MfG Spess
Die alphabetische Sortierung ist länderspezifisch. Bspw. ist ein
deutsches Lexikon anders sortiert als ein englisches und sogar anders
als ein österreichisches. Ich nehme an, dass auch Windows, abhängig
von den "Ländereinstellungen", unterschiedliche Sortierreihenfolgen
anwendet. Linux tut dieses jedenfalls und MacOS m.W. auch.
Soll die Sortierung auf einem Mikrocontroller stattfinden und gleich
sein wie auf einem bestimmten Windows-PC, muss entweder das
Mikrocontrollerprogramm passend zur Windows-Einstellung konfiguriert
werden oder umgekehrt.
Letzter Versuch (Versuch! Also versuchs wenigstens mal):
Erstens: Du liest dir dashier durch:
http://support.microsoft.com/kb/319827
Zweitens: Du vergleichst es damit:
http://groups.google.com/group/microsoft.public.scripting.vbscript/msg/6463e6f1c56cd39e
Dort wird als Beispiel angegeben:
z8A88.txt
z9A99.txt
z88A8.txt
z99A9.txt
Verglichen wird jetzt jeweils das erste Zahlenartige im Namen, also:
z8A88.txt --> zählt als "z" + 8
z9A99.txt --> zählt als "z" + 9
z88A8.txt --> zählt als "z" + 88
z99A9.txt --> zählt als "z" + 99
Drittens: Wende das auf dein Problem an:
"-" zählt als Zahl wie ein negatives Vorzeichen.
A -> "A"
-A -> 0 + "A", Zahlen hinterher
A- -> "A" + 0
AB -> "AB", länger als "A", also hinterher
-AB -> 0 + "AB", Zahlen hinterher wie oben
AB- -> "AB" + 0
-ABC -> 0 + "ABC", "ABC" ist länger als *"AB"*, also hinterher
-ABCD -> 0 + "ABCD", "ABCD" länger als *"ABC"*
B -> "B"
-B
B-
Also:
1. Erst Buchstaben
2. Dann vorab numerierte Buchstaben
3. Dann hinterher numerierte Buchstaben
Sonst wie im Wörterbuch bezogen auf die Buchstaben: Das Längere Wort
hinterher.
Reicht dir das jetzt?
achja?
Dann erklär mir mal, wieso das hier so sortiert wird:
-1b
-20b
a1
a20
-a
b20
-b
Nach Deinen Regeln:
Also erst Buchstaben. Folglich kommt neuerdings B vor A...aha
Dann vorab numerierte Buchstaben. Da angeblich "-" als negatives
Vorzeichen gewertet wird, ist also neuerdings -1 kleiner als -20..aha
Ich gebs jetzt endgültig auf. ("Na endlich")
Hab jetzt ne halbe Stunde recherchiert, irgendwie wohl sinnlos, für so
einen undankbaren Kerl wie SiMa. Statt rumzunörgeln, könnte der ja auch
mal das Hirn einschalten und selber was probieren.
Apropos... spess53, volles Einverständnis :-}
Also Du gibst Dich hier als Mister Allwissend, der dem dummen kleinen
SiMa mal zeigen muss, wo der Hammer hängt. Und dann belehrst Du mich von
oben herab mit Regeln, die ja wohl eindeutig nicht stimmen.
Ich habe hier nach Hilfe gefragt und nicht nach schwachsinniger
Belehrung!
Ich würde Dir gerne meinen Dank aussprechen, wenn es da etwas gäbe, was
dankenswert wäre. Aber sinnlose Regeln und Vermutungen helfen selbst von
Dir nicht weiter...moser andere Leute an, wenn Du mal was weißt.
Ansonsten sei einfach nur still!!
@SiMa:
Sven Pauli ist derjenige in diesem Thread, der bis jetzt die meisten
Geheimnisse der Windows-Sortierreihenfolge gelüftet hat. Deswegen
finde ich deine Art, über ihn herzuziehen, einfach daneben.
Die Sortierreihenfolge in Windows ist offensichtlich völlig krank
und fernab jeglicher Logik. Es ist zwar allgemein bekannt, dass vieles
in Windows etwas schräg ist. Aber das Zeugs, das die MS-Jungs (und
-Mädels) während der Festlegung der Dateinamensortierung geraucht
haben, muss gigaverdorben gewesen sein.
Das mit der Interpretation von Ziffernfolgen als Dezimalzahlen und der
entsprechenden Sortierung geht gerade noch so in meinen Kopf. Wirklich
extrem wird es aber bei den Bindestrichen und anderen Sonderzeichen.
Hierzu noch ein anderer Link, der sich zwar auf den SQL Server
bezieht, aber wahrscheinlich auch auf andere MS-Programme wie den
Explorer anwendbar ist:
http://support.microsoft.com/kb/305704
Aber auch hier wird nur beschrieben, wie Begriffe sortiert werden, die
sich nur in einem Bindestrich unterscheiden. Alle anderen Fälle wie
bspw. die Reihenfolge von -AA, A-A, AA-, -A-A, A-A- usw. sind auch mit
diesem Artikel nicht abgedeckt.
Da ich mittlerweile ebenfalls eine ganze Weile erfolglos nach einer
anständigen und vor allem vollständigen Dokumentation des Sachverhalts
gesucht habe, gehe ich davon aus, dass eine solche nicht existiert.
Möglicherweise sind in dem Algorithmus solche Spezialfälle wie oben
gar nicht explizit berücksichtigt, sondern werden - abhängig von der
Reihenfolge interner Abfragen u.ä. - einfach irgendwie behandelt.
Ein geneigter Windows-Fetischist mag das so entstandene "Regelwerk"
vielleicht mit Hilfe eines Disassemblers herausfinden.
Allerdings gehe ich davon aus, dass der Code etliche Kilobytes lang
ist. Da stellt sich die Frage, ob man mit so einem Quatsch wirklich
einen Mikrocontroller quälen muss, zumal sich mit der nächsten
Windows-Ausgabe sich möglicherweise wieder alles ändern wird.
Sortiere deine Strings doch nach DIN 5007, dann hast du wenigstens
etwas Offizielles, worauf du dich stützen kannst.
@Yalu
Moment: der von mir angegebene Algorithmus (und den habe ich hier
reingeschrieben, bevor Sven seine Superregeln gepinselt hat) erledigt,
bis auf das Problem mit dem "-", alles! Wieso behauptest Du, dieser Sven
wäre der einzige, der hier irgendwelche Windows-Geheimnisse gelüftet
hätte? Gar nichts hat er gelüftet, denn seine Regeln sind falsch!
Sicherlich einzigartig ist seine Art (und zwar von Anfang an!), sich als
allwissend darzustellen. Er behauptet doch, das wäre alles ein
Kinderspiel und ich wäre ja nur zu doof und zu faul, das mal schnell
nachzulesen! Um dies noch zu unterstützen, spricht er ständig
Beleidigungen aus. Und dies meinen auch andere in diesem Thread!!
So, und wo sind wir jetzt? Nach langem sinnlosem Gesabber stellen hier
die Fachleute fest, dass es eben doch nicht so einfach ist und man dann
doch besser aufgibt. Eine Art der Lösung, die ich gesucht habe.
implementiere eine sortierung nach einer graduiert-lexikographischen
ordnung über das ascii-alphabet und du musst dir keine gedanken um
irgendwelche sonderfälle machen.
und wer zum geier hat dateinamen wie:
-1b
-20b
a1
a20
-a
b20
-b
?
df311 wrote:
> implementiere eine sortierung nach einer graduiert-lexikographischen> ordnung über das ascii-alphabet und du musst dir keine gedanken um> irgendwelche sonderfälle machen.
Vollkommen sinnlos, da dann z.B. großgeschriebene Wörter vor
Kleingeschriebenen stehen würden (widerspricht u.a. DIN 5007).
> Die Sortierreihenfolge in Windows ist offensichtlich völlig krank> und fernab jeglicher Logik. Es ist zwar allgemein bekannt, dass vieles> in Windows etwas schräg ist. Aber das Zeugs, das die MS-Jungs (und> -Mädels) während der Festlegung der Dateinamensortierung geraucht> haben, muss gigaverdorben gewesen sein.
Übliches MS gebashe...
Das der Mac Finder oder der Konqueror ähnlich sortieren, passt natürlich
nicht ins Konzept...
Das Problem ist, das DIN 5007 nicht alle Fälle abdeckt und somit
(scheinbar willkürliche) Entscheidungen getroffen werden müssen.
String-Vergleich in Unicode
http://www.unicode.org/unicode/reports/tr10/#S1.1
Natural Sort Order
http://www.codinghorror.com/blog/archives/001018.html
Oder mal zum Vergleich verschiedener Sortierungen
http://www.quarkuser.net/quarkxpress/alphabetisch_sortieren/
>> Die Sortierreihenfolge in Windows ist offensichtlich völlig krank>> und fernab jeglicher Logik. ...>> Übliches MS gebashe...> Das der Mac Finder oder der Konqueror ähnlich sortieren, passt> natürlich nicht ins Konzept...
Gebashe ja, dazu stehe ich ;-)
MS-Gebashe aber nur deswegen, weil der Threadstarter mit einem
MS-Produkt auf das Problem gestoßen ist. Hätte er nach der
Sortierreihenfolge in einem Produkt eines anderen Herstellers gefragt,
und wäre diese ebenso wirr, und wäre es ebenso schwer, eine
Dokumentation dazu zu finden, hätte ich genauso gebasht.
Die Sortierung soll doch dem Anwender helfen, in einer langen Liste
von Dateinamen einen bestimmten schnell aufzufinden. Das kann aber nur
dann funktionieren, wenn der Anwender die Sortierregeln kennt. Sind
diese nicht bekannt, bringt die Sortierung keinen Nutzen.
Weil überhaupt keine Einigkeit bei den Sortierregeln zu bestehen
scheint, und nicht einmal das DIN es schafft, eine halbwegs eindeutige
Spezifikation aufzustellen, bin ich dazu übergegangen, wo möglich die
POSIX-Sortierreihenfolge einzustellen und in Dateinamen nur druckbare
Zeichen der 7-Bit-ASCII-Kodierung (abzüglich einiger verwirrender
Sonderzeichen) zu verwenden. Damit hat dann auch der Mikrocontroller
keine Probleme :)
Natürlich kann ich Sortierregeln finden/anwenden, die den MC entlasten.
Wäre mir persönlich auch am Liebsten. Mein Problem ist aber, dass die
Sortier-Ergebnisse meines MC mit (im Wesentlichen) dem Windows Explorer
verglichen werden. Der ist nunmal sehr verbreitet. Also sollte es dazu
möglichst gleich sein.
>Die Sortierung soll doch dem Anwender helfen, in einer langen Liste>von Dateinamen einen bestimmten schnell aufzufinden. Das kann aber nur>dann funktionieren, wenn der Anwender die Sortierregeln kennt. Sind>diese nicht bekannt, bringt die Sortierung keinen Nutzen.
Sorry yalu, aber ich wüsste beim besten Willen auf Anhieb generell
nicht, wo ich Dateien mit Minus "-" im Dateinamen in der angezeigten
Liste zu erwarten habe. Ich bin zufrieden, dass bei MS der Underscore
"_" stets zuerst in der Dateiliste erscheint, denn diesen Nutze ich
gerne für kurze Bemerkungen die ich als Pseudo-Verzeichnisnamen erstelle
oder auch um bestimmte Verzeichnisse hervorzuheben.
Interessant wird das mit dem Minus, wenn du es zum Trennen mehrerer
Angaben in einem Dateinamen verwenden willst (wie es häufig bei Dateien
im Web-Bereich der Fall ist):
scan-2008-03-01-deckblatt.png
scan-2008-03-01-seite-1.png
scan-2008-03-01-seite-10.png
Was weiß ich. Normaler Weise sorge ich auch für eine lexikalisch
sortierbare Benennung.
@SiMa: wirst dich wohl damit zufrieden geben müssen, dass keiner hier
eine Antwort auf die Frage liefern kann und du damit in meinen Augen
vier Möglichkeiten hast:
1) Verwende eine Sortierung, die dir vom Bauchgefühl her passt und die
einfach zu implementieren ist (genug Vorschläge gab's ja jetzt)
2) Versuche dich der hier im Thread erarbeiteten Microsoft-(Un)logik
anzunähern und verzichte auf das letzte Quäntchen
3) Hol dir 'ne Pizza, mach die Jalousien runter und schmeiß den
Disassembler an.
4) Kurbel selbst nochmal die Suchmaschine an und komme zu dem Schluss,
dass Sven die vermutlich besten Links zu dem Thema gefunden hat und
fahre frustriert bei Punkt 1-3 fort.
Viel Spaß ;)
hatte das gleiche Prob vor kurzem mit einem kleinen Java-Progrämmchen.
Ich habe es damals so gelöst, dass das Minuszeichen (für mich war/ist es
ein Bindestrich) als Sonderzeichen gewertet wird.
Die Reihenfolge war also Sonderzeichen - Zahlen - Buchstaben
Wobei ich die Sonderzeichen in der Reihenfolge, wie sie auch in der
Windows Zeichentabelle sind, gewählt habe.
Ich habe diese "Sortierregel" innerhalb von 5min festgelegt nachdem ich
eben auch bemerkt habe, dass Windows da nicht wirklich logisch vorgeht.
Und ich glaube dass die meisten User, die mein Programm verwenden, gar
nicht bemerken werden dass es ein wenig anderst sortiert!
Mal ehrlich: wer achtet den eigentlich bewußt auf sowas!?
Blob! wrote:
> Mal ehrlich: wer achtet den eigentlich bewußt auf sowas!?
So Leute (...) wie SiMa (...) zum Beispiel. Lieber weltfremd und
Microsoft statt logisch nachvollziehbar.
@Theo
Nett, wie Du hier von weltfremd redest. Können die Leute hier eigentlich
nur Beleidigungen aussprechen, wenn sie fachlich nichts beitragen
können?
Weltfremd sind die, die programmieren und sagen: ist doch mir egal, was
der Kunde will. Er soll damit leben, was ich ihm gnädigerweise vorsetze!
Unsere Kunden werden das anmeckern...und deshalb versuche ich solche
Dinge eben so zu machen, wie es die Kunden wollen. Das spart hinterher
im Vertrieb und beim Service viel Zeit! Vielleicht würde Dein
Brötchengeber mehr Gewinn machen, wenn die Mitarbeiter auch mal 3cm über
den Tellerrand hinaus sehen würden?!
naja, bei komerziellen Anwendungen sollte es dann doch ein wenig
professioneller daher kommen. Bei meiner klicki-bunti-freeware fande ich
aber keine notwendigkeit grössere Nachforschungen anzustellen.
Hat sich bei dir, SiMa, schon was ergeben?
ansonsten kann ich Dir leider auch nciht weiter helfen, da bleibt wohl
nur das durchforsten der MSDN oder aber Du erstellst einen Berg voll
Dateien mit unterschiedlichen Namen und testest selbst den algorytmus
aus.
Ich seh gerade dass Du das für nen mp3-Player machst, ich denk da wird's
doch nit so wild sein oder? - i.d.R. gehen doch mp3's mit einer Zahl los
wenn man keine playlist verwendet?
und "kunden" werden sich da auch nicht beschweren, oder? ;)
> i.d.R. gehen doch mp3's mit einer Zahl los
Welche Regel ist das denn? Meine (und die unzähliger anderer) Beginnen
mit dem Interpreten. ( Geile Band - Geiler Song.mp3)
Also ich habe meine MP3-Dateien auch nach Interpret-Titel.MP3 benannt.
Und gerade bei einem MP3-Player erwarten die Kunden, dass die
Reihenfolge so abgespielt wird, wie sie sie im Verzeichnis sehen. Und
das sind nunmal, ob man Microsoft mag oder nicht, in der großen Überzahl
Windows-User. Und angezeigt werden dort die Dateien eben im Wesentlichen
mit dem Windows-Explorer.
Seid mir nicht böse, aber wieso muss ich mich für meine Frage nach einem
Algorithmus rechtfertigen? Ist es nicht möglich, einfach auf die Frage
einzugehen? Dies sehe ich hier leider in vielen Threads. Fragt einer
nach einem 3,3V-Regler, wird erstmal diskutiert, wozu er überhaupt 3,3V
braucht und nicht 5V nimmt. Glaubt mir, ich habe meine Gründe, wieso ich
diesen Algorithmus brauche...
@Blob!
Mein selbstausgetüftelter Algorithmus läuft 100%ig, so lange nicht
dieses dumme "-" drin ist. Wie das einzuordnen ist (vor allem, wenn
gleich 2 oder 3 davon im Dateinamen sind) habe ich noch nicht
verstanden...
Für die Masochisten unter euch:
http://www.pctools.com/guides/registry/detail/1293/http://support.microsoft.com/kb/319827
Viel dichter wird man nicht dran kommen.
>Und das sind nunmal, ob man Microsoft mag oder nicht, in der großen Überzahl>Windows-User.
Welches Windows? XP SP1, SP2, SP3 oder Vista? Dir kann kann keiner
garantieren, dass es dazwischen nicht noch weitere Unterschiede gibt.
Zwischen Win2000 und XP gab's auf jeden Fall einen gravierenden.
@Kai
Sei mir nicht böse, aber Deine Links nützen mir rein gar nichts. Es geht
nicht darum, den User dazu zu bringen, seine Windows-Einstellungen zu
ändern, sondern darum, die Sortierreihenfolge wie Windows-XP zu machen.
Und es geht auch nicht um das Einsortieren von zahlen. Das ist doch
schon längst geklärt.
Und laut Microsoft hat sich zwischen W2000 und XP bezüglich der
Sortierung nichts geändert. Wo soll der Unterschied sein? Abgesehen
hiervon sind die aktuellen Versionen XP und Vista. Durch die SPs änderte
sich bis jetzt nichts!
> Und laut Microsoft hat sich zwischen W2000 und XP bezüglich der> Sortierung nichts geändert.
Hat es aber. Und zwar erheblich. Einerseits bietet der XP-Explorer die
Option "Ansicht"->"Symbole anordnen nach"->"In Gruppen anzeigen", die
der W2K-Explorer nicht kennt, andererseits sortiert der W2K-Explorer
1 10 11 2 20 21 3 ...
während der XP-Explorer
1 2 3 10 11 20 21 ...
sortiert.
(Ansicht "Details", Klick auf Spaltenüberschrift "Name").
Möglicherweise hat Deine ursprüngliche Frage hier auch so viel Getöse
hervorgerufen, weil Du danach gefragt hast, wie Windows Dateinamen
sortiert - und nicht, wie der Explorer Dateinamen sortiert.
Das DIR-Kommando in der Konsole ist auch Windows und sortiert bei Angabe
von /ON übrigens wie der W2K-Explorer.
Gibt es eigentlich den Microsoft News Server noch?
Das wäre meine erste Anlaufstelle bei solchen Fragen.
Da das Thema anscheinend nicht trivial ist und darauf hinausläuft
rauszufinden, welches Vergleichskriterium die Microsoft
Programmierer benutzt haben, würde ich versuchen an diese Leute
so nah wie möglich heranzukommen und sie selbst zu fragen, anstatt
irgendwelche Leute in einem Forum, welches zwar sehr gut ist,
sich aber eigentlich mit Mikrocontrollern beschäftigt.
@SiMa
Sag mal hast du die Links überhaupt gelesen? Ich weiß, dass das viel
Text ist, aber ich habe da scheinbar deutlich mehr Informationen
gefunden:
>Sei mir nicht böse, aber Deine Links nützen mir rein gar nichts. Es geht>nicht darum, den User dazu zu bringen, seine Windows-Einstellungen zu>ändern, sondern darum, die Sortierreihenfolge wie Windows-XP zu machen.
Ist mir schon klar, ich wollte dir nur aufzeigen, dass es anscheinend
Versionsunterschiede gibt und dass ich nicht ausschließen kann, dass es
noch weitere Unterschiede gibt, die dich dann doch wieder betreffen.
>Und es geht auch nicht um das Einsortieren von zahlen. Das ist doch>schon längst geklärt.
Mir ist klar, dass das mit den Zahlen schon geklärt ist - daher habe ich
speziell für dich einen Artikel rausgesucht, der sich auch um die
Bindestriche und andere Sonderzeichen kümmert! Ist zwar nicht
erschöpfend, aber schon relativ dicht am tatsächilchen Verhalten dran.
>Und laut Microsoft hat sich zwischen W2000 und XP bezüglich der>Sortierung nichts geändert.
Laut Microsoft gibt es einen Schalter, mit dem man explizit die
Kompatibilität zu Windows 2000 wieder herstellen kann - steht aber
erschöpfend in den Links, die ich dir gepostet habe! Sogar im Original
von Microsoft!
>Abgesehen hiervon sind die aktuellen Versionen XP und Vista. Durch die SPs >änderte sich bis jetzt nichts!
Woher weißt du das? Du leugnest ja sogar den Unterschied zwischen
Windows 2000 und XP.
Ich habe ehrlich gesagt auch keine Lust mehr dir zu helfen, wenn du
selbst scheinbar kaum Zeit in das Lesen der dir vorgelegten
Informationen investierst. Ich weiß, dass das viel Text ist, aber eine
Komplettlösung wird's nicht geben und der Rest ist nunmal
Eigeninitiative!
Ansonsten kann ich nur Karl heinz Buchegger zustimmen - geh zur Quelle,
alles andere ist Spekulation.
Im übrigen erwähnt MS in der Dokumentation der Funktion lstrcmp
folgendes:
1
The lstrcmp function uses a word sort, rather than a string sort. A word
2
sort treats hyphens and apostrophes differently than it treats other
3
symbols that are not alphanumeric, in order to ensure that words such as
4
"coop" and "co-op" stay together within a sorted list.
5
For a detailed discussion of word sorts and string sorts, see the
6
Remarks section for the CompareString function.
Die Dokumentation der Win32-API-Funktion CompareString beschreibt in
eben jener "Remarks section" (unter anderem) dies:
1
Evaluating Strings
2
3
If the two strings are different lengths, they are compared up
4
to the length of the shortest one. If they are equivalent at that
5
point, the return value indicates that the longer string is greater.
6
(...)
7
8
Typically, strings are compared using what is called a "word sort"
9
technique. In a word sort, all punctuation marks and other
10
nonalphanumeric characters, except for the hyphen and the
11
apostrophe, come before any alphanumeric character.
12
The hyphen and the apostrophe are treated differently than the
13
other nonalphanumeric symbols, in order to ensure that words
14
such as "coop" and "co-op" stay together within a sorted list.
15
16
If the SORT_STRINGSORT flag is specified, strings are compared
17
using what is called a "string sort" technique. In a string sort,
18
the hyphen and apostrophe are treated just like any other
19
nonalphanumeric symbols. Their positions in the collating
20
sequence are before the alphanumeric symbols.
21
22
The following table shows a list of words sorted both ways.
23
Word Sort String Sort Word Sort String Sort
24
billet bill's t-ant t-ant
25
bills billet tanya t-aria
26
bill's bills t-aria tanya
27
cannot can't sued sue's
28
cant cannot sues sued
29
can't cant sue's sues
30
con co-op went we're
31
coop con were went
32
co-op coop we're were
Dazu kommt noch, daß "accented characters" (und dazu dürften auch unsere
Umlaute zählen) in Abhängigkeit von der locale unterschiedlich
behandelt werden:
1
Language-specific Notes
2
The NORM_IGNORENONSPACE flag only has an effect for the locales in
3
which accented characters are sorted in a second pass from main
4
characters. All characters in the string are first compared without
5
regard to accents and (if the strings are equal) a second pass over
6
the strings is performed to compare accents. In this case, this flag
7
causes the second pass to not be performed. For locales that sort
8
accented characters in the first pass, this flag has no effect.
Das herauszufinden hat mich jetzt etwa 10 Minuten gekostet. Es ist recht
wahrscheinlich, daß der Explorer die Funktion CompareString oder
ähnliches verwendet.
Ein dumpbin /imports zeigt, daß folgende Funktionen importiert werden:
lstrcmpW
lstrcmpiA
lstrcmpiW
(aus kernel32.dll)
StrCmpNIW
StrCmpW
StrCmpIW
StrCmpNW
(aus shlwapi.dll)
Gut, kein CompareString, aber lstrcmp. Und das verwendet "word sort".
Das Verhalten von StrCmp aus shlwapi.dll scheint nicht weiter
dokumentiert zu sein.
Was bei den verschiedenen Vergleichsfunktionen intern passiert, ist hier
beschrieben:
http://blogs.msdn.com/michkap/archive/2005/05/08/415522.aspx
@Kai
Ich habe nur geschrieben, dass sich laut eines Microsoft-Artikels die
Sortierreihenfolge von Windows-2000 und Windows-XP nicht unterscheidet.
Da habe ich vermutlich 2000 mit 2003 verwechselt. Entschuldigung.
Allerdings habe ich darauf nie geachtet, denn ich suche die
Sortierreihenfolge von XP.
Ich bin durchaus in der Lage, mehr als nur eine Zeile zu lesen. Wo Du
allerdings in den von Dir angeführten Links Informationen über das
Einsortieren des Bindestrichs siehst, entgeht mir immer noch. Ich kann
da nichts drüber finden!
@Karl heinz
Microsoft habe ich schon längst angeschrieben, aber bisher keine
sinnvolle Antwort erhalten. Ansonsten entschuldige ich mich auch bei
Dir, dass ich auf die Idee gekommen bin, in einem Forum, in dem es extra
eine Rubrik für PC-Programmierung gibt, nach soetwas zu fragen. Wie
gewünscht werde ich mich jetzt anderweitig um Lösungen bemühen und Euch
nicht stören.
@Rufus t. Firefly
Ich bin doch tatsächlich davon ausgegangen, dass "wie Windows sortiert"
den Windows-Explorer meint. Zu dumm von mir, dass ich erst im nächsten
Beitrag Windows-XP spezifiziert habe und dann auch noch vergessen habe,
dass ich "dir" mit zusätzlichen Switches nicht meine. Da kann ich nur
noch nachträglich Sven Pauli Recht geben: ich bin einfach nur doof.
Ich verabschiede mich hier von der Erbsenzählerei. Jetzt könnt Ihr
ungehemmt über mich lästern.
SiMa wrote:
> Microsoft habe ich schon längst angeschrieben, aber bisher keine> sinnvolle Antwort erhalten.
Anschreiben wird auch nichts bringen.
MS betreibt (betrieb?) einen News-Server. Dort hängen fähige Leute
rum, die auch Einblick in die Windows-Internals haben. Es ist nicht
ungewöhnlich, dass MS Entwickler dort mitlesen.
> Ansonsten entschuldige ich mich auch bei
Brauchst du nicht
> Dir, dass ich auf die Idee gekommen bin, in einem Forum, in dem es extra> eine Rubrik für PC-Programmierung gibt, nach soetwas zu fragen.
Ist alles eine Frage, wie weit man gehen will. Das Forum hier kratzt
eher an der Windows Oberfläche. 80% aller Fragen drehen sich um die
Ansteuerung einer seriellen Schnittstelle in VB :-)
Im Ernst: Ich denke wirklich, dass das hier das falsche Forum für
eine derartige Frage ist. Auch wenn hier viele Leute gute bis
sehr gute Kenntnisse über Windows-Internals haben, ist diese Site
in seinem hauptsächlichen Verwendungszweck auf µC-relevante Dinge
ausgelegt. Dementsprechend ist auch das Publikum.
Anders ausgedrückt: Auch wenn es beim Fleischer Käse zu kaufen
gibt, würde ich mit einer Frage zu bestimmten Käse-Schimmelkulturen
zu einer Käserei gehen und nicht die Fleischfachverkäuferin
löchern.
Nichts für ungut.
>Wo Du allerdings in den von Dir angeführten Links Informationen über das >Einsortieren des Bindestrichs siehst, entgeht mir immer noch.
Sorry, mein Fehler - ich sehe gerade, dass ich gestern den falschen Link
erwischt habe!
Kernaussage von dem Link, den ich eigentlich meinte, war, dass die
führenden Bindestriche bei der Sortierung einfach ignoriert werden. Ich
schau mal, ob ich den nochmal wiederfinde...
>Ich verabschiede mich hier von der Erbsenzählerei.
Na ja - denk mal über deine Anforderungen nach: Du nimmst das mit der
Sortierung auch ziemlich genau.
>Seid mir nicht böse, aber wieso muss ich mich für meine Frage nach einem>Algorithmus rechtfertigen? Ist es nicht möglich, einfach auf die Frage>einzugehen?
Ganz einfach, wenn es keine (einfache) Antwort auf deine Frage gibt,
setzt man immer einen Schritt früher an und schaut nach, ob sich an den
Anforderungen was machen lässt, so dass das Problem nicht mehr auftritt.
Bevor ich Tage in die Lösung eines Problems investiere, welches den
Aufwand einfach nicht rechtfertigt, nehme ich den Hörer in die Hand und
versuche den Kunden davon zu überzeugen, dass die andere Lösung keine
nennenswerten Nachteile mit sich bringt. Kostet dich 5 Minuten und spart
u.U. ein paar Kubikeuro.
Wenn ich dich frage, wie ich über eine Laterne klettere weil mir diese
im Weg ist, wirst du mich auch fragen, warum ich nicht einfach drum
herum gehe.
Ansonsten Mut zur Lücke in der Hoffnung, dass er bei der Abnahme nicht
die super-mega-Spezialfälle ausprobiert.
> Ich bin doch tatsächlich davon ausgegangen, dass "wie Windows> sortiert" den Windows-Explorer meint. Zu dumm von mir, dass ich> erst im nächsten Beitrag Windows-XP spezifiziert habe und dann> auch noch vergessen habe, dass ich "dir" mit zusätzlichen> Switches nicht meine. Da kann ich nur noch nachträglich> Sven Pauli Recht geben: ich bin einfach nur doof.
Dem ist, vor allem in Anbetracht Deiner sonstigen Reaktionen auf
hilfreiche (oder hilfreich gemeinte) Hinweise, wohl nur zuzustimmen.
Wer um Hilfe bittet, und bei der ersten Antwort, die ihm nicht in den
Kram passt, sein Gegenüber als Idiot darstellt, muss sich nicht wundern,
wenn auch er als ein solcher angesehen wird.
>Wer um Hilfe bittet, und bei der ersten Antwort, die ihm nicht in den>Kram passt, sein Gegenüber als Idiot darstellt, muss sich nicht wundern,>wenn auch er als ein solcher angesehen wird.
Sehe ich ähnlich - ich kenne Leute die bedanken sich selbst dann für die
investierte Zeit, wenn die Antwort nicht zu 100% mit der gesuchten
Lösung übereinstimmt.
Wie einzelne Bindestriche oder Apostrophe in Dateinamen behandelt
werden dürfte nach nach den bisher geposteten Links klar sein.
Für Dateinamen, die beliebig viele Bindestriche und beliebig oft ein
weiteres Zeichen enthalten (also bspw. alle Kombinationen der Zeichen
'-' und 'a'), habe ich das System auch schon herausgefunden, es ist
aber schon so kompliziert, dass ich es kaum in Worten formulieren
kann ;-)
Schwierig wird, wenn mehrere Bindestriche mit unterschiedlichen
Buchstaben kombiniert werden, s. obiges Beispiel:
> ABA> -ABA> A-BA> -A-BA> ABA-
An Horror grenzt das Ganze, wenn man mehrere Bindestriche und
Apostrophe gemischt zulässt. Einfach mal ein paar Dateien anlegen,
dern Namen nur aus '-' und ''' bestehen und staunen. Das wäre sicher
eine hervorragende Basis für einen Pseudozufallszahlengenerator :)
@SiMa (wenn du dich noch nicht ausgeklinkt hast):
Die MP3-Files, um die es geht, kommen doch sicher von einem PC. Lass
sie doch einfach beim Upload auf den Player vom PC sortieren. Dann
hast du die Gewähr, dass sie immer "richtig" sortiert sind, unabhängig
von der OS-Version, Servicepacks und Benutzereinstellungen.
Ok, das beantwortet zwar deine ursprünglich Frage wieder nicht, ich
halte es aber trotzdem für einen konstruktiven Vorschlag.
Der Konqueror sortiert übrigens auch ähnlich. Darf ich grad noch
anmerken:
Erstens: http://www.mikrocontroller.net/articles/Benutzer:Haku (warum
wurde das eigentlich gelöscht vorher? Sind doch nur frei übernommene
Zitate?)
Zweitens: Linux-Quellcode angucken: Konqueror, LIBC, Wine.
Jetz is Schluss^^