Hallo!
Ich hab eine Listview mit Elementen, die die Größe angeben. Wenn ich nach der Größe sortiere, geht das Script ja nach dem ersten Zeichen, z.B.
1MB
10MB
100MB
20MB
3MB
Wie krieg ich das denn in den Griff?
Hallo!
Ich hab eine Listview mit Elementen, die die Größe angeben. Wenn ich nach der Größe sortiere, geht das Script ja nach dem ersten Zeichen, z.B.
1MB
10MB
100MB
20MB
3MB
Wie krieg ich das denn in den Griff?
Hi,
das Problem ist die Sortierung nach Strings oder Zahlen.
Mega
Und wie kann ich das einstellen?
Ich kann nicht sagen ob dieses weiter hilft, aber das ist auch ein Sortierproblem.
Aus dem Beitrag geht nicht hervor wie die Listview erstellt wurde, somit ist "Gætte med Pia og Himo" (in deutsch "Rate mal mit Rosental") gefragt.
LG, Crazy-A.
Ich habs aus einem Array erstellt. Hier der Code:
For $j = 1 To 100
If StringLen($array[$j][0]) > 1 Then
GUICtrlCreateListViewItem($array[$j][0]&"~"&$array[$j][1]&"~"&$array[$j][2]&"~"&$array[$j][3]&"~"&$array[$j][4]&"~"&$array[$j][5]&" ... "&$array[$j][6]&" ... "&$array[$j][7],$searchresult)
EndIf
Next
Und die Sortierung selber mach ich so:
...
$searchresult = GUICtrlCreateListView("Dateiname~Größe~Status~Quelle",3,60,894,444,$GUI_SS_DEFAULT_LISTVIEW,BitOr($LVS_EX_CHECKBOXES,$LVS_EX_FULLROWSELECT))
...
_GUICtrlListView_RegisterSortCallBack($searchresult)
...
_GUICtrlListView_SortItems($searchresult, GUICtrlGetState($searchresult))
Hi,
sowas:
[autoit]#include <Array.au3>
Global $test_A[5] = ["John - 3","Malcom - 7", "Barbara - 1", "Frank - 2345", "Diane - 99"]
$re = _sortNummeric($test_A)
[/autoit][autoit][/autoit][autoit]_ArrayDisplay($re)
[/autoit][autoit][/autoit][autoit]Func _sortNummeric(ByRef $array)
Local $t_A[UBound($array)][2], $re_A[UBound($array)]
For $i = 0 To UBound($array) - 1
$t_A[$i][0] = Int(StringRegExpReplace($array[$i], '[^0-9]', ''))
$t_A[$i][1] = $array[$i]
Next
_ArraySort($t_A, 0, 0, 0, 0)
For $i = 0 To UBound($array) - 1
$re_A[$i] = $t_A[$i][1]
Next
Return $re_A
EndFunc ;==>_sortNummeric
Mega
D.h. also ich muss mein Array zuerst sortieren und dann aus dem sortierten Array die ListviewItems erstellen. Richtig?
Ich möchte eigentlich nicht bei jeder Sortierung die Items neu erstellen...
EDIT: Habs selber rausgefunden
Zitat von english helpfileAlles anzeigen_GUICtrlListView_RegisterSortCallBack
--------------------------------------------------------------------------------Register the Simple Sort callback function
#Include <GuiListView.au3>
_GUICtrlListView_RegisterSortCallBack($hWnd[, $fNumbers = True[, $fArrows = True]])
Parameters
$hWnd Handle of the control
$fNumbers Treat number strings as numbers
$fArrows Draws a down-arrow/up-arrow on column selected (Windows XP and above)