Hi Codetomaser,
Ich nehme mal an, dass die diese Daten als string zur Verfügung stehen.
Prinzipiell würde ich wie folgt vorgehen:
Parsen der einzelnen Teile, z.B. weißt du ja, dass am Anfang immer der Dateiname steht (PDF1) gefolgt von einem Doppelpunkt, demnach kannst du mit einer einfachen if-abfrage schonmal den Dateinamen extrahieren. Ich weiß nicht in welcher Umgebung (z.B. .NET) du dich befindest, aber dort könntest du die 2. Komponente (das Datum) einfach in eine DateTime Objekt umwandeln via "Convert.ToDateTime(„2012.05.01“).
Das Ziel, bevor du überhaupt an das Sortieren denken kannst, muss also sein, die Zeichenkette in ein Objekt oder einzelne Zahlen umzuwandeln, die du untereinander vergleichen kannst.
Du kannst zwar die strings vergleichen, bekommst aber keine zuverlässigen & richtigen Ergebnisse. Z.B.:
würde er diese drei Zahlen 1,2,11 wie folgt sortieren:
1
11
2
- das ist sicher nicht was du brauchst. Also brauchst du entweder ein DateTime Objekt, oder Allgemein gesagt, musst du das Datum in seine einzelnen Komponenten aufteilen und z.B. als Integer ablegen. Damit du diese Vergleichen kannst.
Die Sortierung machst du dann mit einem Sortieralgorhitmus (z.B. Bubblesort).
Dabei musst du nur beachten, dass du zuerst nach Jahr, dann nach dem Monat und dann nach dem Tag sortierst!
Wichtig wäre sicher zu stellen, dass du das gegebene Input sicher umwandeln kannst. Also solltest du dein Input auf jeden Fall prüfen (z.B. ob es das oben gegebene Format hat - das kannst du mit Regula Expressions erreichen).
Grüße,
Thomas