_ArraySort Problem // 10 wird wie 1 behandelt

08/13/2015 20:59 visualcode#1
Guten Tag liebe Community,

Hab da folgendes Problem: Wenn ich die Keys einer Ini Datei nach Value (absteigend) sortiere, funktioniert dies zunächst wunderbar, wenn der Value eines Keys jedoch "10" ist, dann wird dieser als "1" behandelt, sprich ganz runter auf die Liste gesetzt.

Code:
Func SortList()
   $IniSection = IniReadSection("unsortedList.ini", "Champions")
   _ArraySort($IniSection, 0, 0, 0, 1)
   FileDelete("sortedList.ini")

   For $i = UBound($IniSection)-1 To 1 Step -1
	  IniWrite("sortedList.ini", "Champions", $IniSection[$i][0], $IniSection[$i][1])
   Next
EndFunc
Weder die _ArraySort() Referenz, noch die SuFu konnten mir mit Hilfe beistehen.

Mfg visualcode
08/13/2015 21:17 alpines#2
Das liegt daran das _ArraySort das ganze Alphanumerisch sortiert. Dabei werden erst Sonderzeichen, dann Zahlen dann Buchstaben sortiert.
Die standardmäßige _ArraySort bietet keinen Parameter dafür an also musst du dir eine Funktion selber dafür schreiben oder eine Sortierungs UDF ziehen.
08/13/2015 21:22 visualcode#3
Okay alles klar, danke für die Antwort :)

Edit:

Quote:
Originally Posted by alpines View Post
Das liegt daran das _ArraySort das ganze Alphanumerisch sortiert. Dabei werden erst Sonderzeichen, dann Zahlen dann Buchstaben sortiert.
Die standardmäßige _ArraySort bietet keinen Parameter dafür an also musst du dir eine Funktion selber dafür schreiben oder eine Sortierungs UDF ziehen.
Hab das Problem nun einfach so gelöst: Der Value wird nun um 0.0001 erhöht, somit ist ausgeschlossen, das die Zahl "10" erreicht wird, habs grad mal getestet, funktioniert auch sauber. Ist zwar ein eher unschöner Programmierstil, aber ich bezweifle, dass jemand 100k mal den selben Champion spielen wird :b



kann geschlossen werden
:)