Hallo zusammen!
Ich möchte gerne eine Liste mit Dateien nach einem speziellen Kriterum soriteren. Diese Dateien sind alle vom Format:
lib-*.av
Zwischen - und . steht nur 1 Zeichen oder 1 Zahl. Ich erstelle jetzt so meine Liste:
Die Einträge in validPatches müssen jetzt aber korrekt sortiert werden. Das Kriterium sieht folgendermassen aus:
Also: Zeichen ist weiter am Anfang (=kleiner?) als Zahl und grosser Buchstaben ist weiter am Anfang als kleiner Buchstaben.
Ich habe validPatches->Sort probiert mit einer Instanz des delegats System::Comparison<String^> allerdings wurde da ständig eine Exception geworfen wenn ich ausser String::Compare zurückzugeben irgendeine andere Aktion ausgeführt habe.
Was gibt es für Ansatzmöglichkeiten um die zu bewerkstelligen?
Gruss
Cromon
Ich möchte gerne eine Liste mit Dateien nach einem speziellen Kriterum soriteren. Diese Dateien sind alle vom Format:
lib-*.av
Zwischen - und . steht nur 1 Zeichen oder 1 Zahl. Ich erstelle jetzt so meine Liste:
Code:
String^ dataPath = basePath + "data";
array<String^>^ files = Directory::GetFiles(dataPath, "lib-*.av");
List<String^>^ validPatches = gcnew List<String^>();
Regex^ reg = gcnew Regex("lib-[a-zA-Z0-9].av", RegexOptions::IgnoreCase);
for each(String^ file in files)
{
if(reg->IsMatch(file))
validPatches->Add(file);
}
Die Einträge in validPatches müssen jetzt aber korrekt sortiert werden. Das Kriterium sieht folgendermassen aus:
- Absteigend sortiert
- Zu unterst müsste lib-0.av stehen
- Zu oberst müsste lib-Z.av stehen
Also: Zeichen ist weiter am Anfang (=kleiner?) als Zahl und grosser Buchstaben ist weiter am Anfang als kleiner Buchstaben.
Ich habe validPatches->Sort probiert mit einer Instanz des delegats System::Comparison<String^> allerdings wurde da ständig eine Exception geworfen wenn ich ausser String::Compare zurückzugeben irgendeine andere Aktion ausgeführt habe.
Was gibt es für Ansatzmöglichkeiten um die zu bewerkstelligen?
Gruss
Cromon