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.
Welchesprogrammwelcheswindoofwelcheprogrammiersprache? <°(((((><
@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.
Man könnte, aber nur wenn der 13 des Monats auf einen Freitag bei Vollmond fällt und die Eule dreimal schreit, nur dann könnte man auch bei Microsoft direkt suchen. http://search.msdn.microsoft.com/Default.aspx?brand=Msdn&refinement=&locale=en-us&lang=en-us&query=Sorting%20filename
@Sven Interessiert mich nicht, dass Du nicht in der Lage bist, mitzudenken. Behalt Dein Supergesülze bitte für Dich!
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...
Sven, warst du heute schon auf dem Klo? Hab' nicht den Eindruck...glaube, du willst mir die Rolle des Forentrolls streitig machen, wie?
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.org http://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.
@yalu Ja, die Sortierung ist natürlich auch länderspezifisch. In meinem Fall kann ich mich aber auf die deutsche Sortierung beschränken.
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?
Sorry, der vorstehende Beitrag von "Haku" stammt von mir. Nachtrag: http://msdn.microsoft.com/en-us/library/bb759947(VS.85).aspx (StrCmpLogicalW).
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
Übrigens: Auf welches Programm beziehen sich denn Deine Regeln? Welche Version und welches BS? Ist doch alles so unterschiedlich
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 Naja, ich bin auf dieses problem mit dem "-" gekommen, weil ich meine MP3-Dateien angesehen habe und "a-ha" seltsam eingeordnet wurde...
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.
Evtl. könnte der Wine- oder ReactOS-Quellcode Aufschluss geben.
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^^
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.