Hier noch meine 2Cents
AutoIt
#include <Array.au3>
; Ausgangsarray:
Local $aListViewData[10][4] = [ _
["PC-001", "00:1A:2B:3C:4D:5E", "192.168.23.145", "Büro 101"], _
["PC-002", "00:2B:3C:4D:5E:6F", "10.0.15.87", "Empfang"], _
["PC-003", "00:3C:4D:5E:6F:7G", "172.16.78.209", "Besprechungsraum"], _
["PC-004", "00:4D:5E:6F:7G:8H", "192.168.1.3", "Buchhaltung"], _
["PC-005", "00:5E:6F:7G:8H:9I", "10.10.55.201", "Marketing"], _
["PC-006", "00:6F:7G:8H:9I:0J", "172.20.100.50", "Entwicklung 1"], _
["PC-007", "00:7G:8H:9I:0J:1K", "192.168.0.11", "Entwicklung 2"], _
["PC-008", "00:8H:9I:0J:1K:2L", "10.1.1.254", "Personalabteilung"], _
["PC-009", "00:9I:0J:1K:2L:3M", "172.31.255.1", "Kantine"], _
["PC-010", "00:0J:1K:2L:3M:4N", "192.168.100.100", "Serverraum"] _
]
; Spalte hinzufügen
Local $iRows = UBound($aListViewData), $iCols = UBound($aListViewData, 2)
Redim $aListViewData[$iRows][$iCols + 1]
; Spalte mit einem sortierbaren Wert (hier mit Nullen aufgefüllte IP-Adresse) füllen:
For $i = 0 To $iRows - 1
$aListViewData[$i][$iCols] = _htonl(_inet_addr($aListViewData[$i][2]))
Next
; nach dieser Spalte sortieren
_ArraySort($aListViewData, 0, 0, 0, $iCols)
; letzte Spalte wieder löschen:
Redim $aListViewData[$iRows][$iCols]
; Ergebnis ausgeben
_ArrayDisplay($aListViewData)
Func _inet_addr($sIP)
Local $aRet = DllCall("ws2_32.dll", "ULONG", "inet_addr", "str", $sIP)
Return $aRet[0]
EndFunc ;==>_inet_addr
;host byte order to network byte order (long)
Func _htonl($value)
Local $aRet = DllCall("ws2_32.dll", "ULONG", "htonl", "ULONG", $value)
Return $aRet[0]
EndFunc ;==>_htonl
Alles anzeigen