Nun möchte ich das Array nach beliebigen Spalten sortieren und wieder zurück speichern.
Im Forum finde ich nur Sortier-Funktionen für Assoziative Arrays, die bei mir nicht funktionieren.
z.B.
http://ahkscript.org/boards/viewtopic.p ... array+sort
https://sites.google.com/site/ahkref/cu ... ort2darray
Wie bewerkstellige ich das für die einfache Form eines 2-dimensionalen Arrrays?
Habe den Kern des Problems mal herauskopiert (der Einfachheit halber befülle ich das Array nicht aus der csv-Datei,
sondern "manuell")
Code: Select all
; Problemstellung Array sortieren
;
; Tabelle:
;
; Nr | Name | PLZ | Straße
;----------------------------------------------
; 1 | Müller | 90547 | Hubertusring
; 2 | Schmidt | 31852 | Steigenberger Str.
; 3 | Huber | 91522 | Wilhelm-Busch-Str
; 4 | Meier | 23552 | Marzipanstraße
TestArray:=[]
TestArray[0,1]:="Nr"
TestArray[0,2]:="Name"
TestArray[0,3]:="PLZ"
TestArray[0,4]:="Straße"
TestArray[1,1]:=1
TestArray[1,2]:="Müller"
TestArray[1,3]:=90547
TestArray[1,4]:="Hubertusring"
TestArray[2,1]:=2
TestArray[2,2]:="Schmidt"
TestArray[2,3]:=31852
TestArray[2,4]:="Steigenberger Str"
TestArray[3,1]:=3
TestArray[3,2]:="Huber"
TestArray[3,3]:=91522
TestArray[3,4]:="Wilhelm-Busch-Str"
TestArray[4,1]:=4
TestArray[4,2]:="Meier"
TestArray[4,3]:=23552
TestArray[4,4]:="Marzipanstraße"
AnzahlZeilen:=TestArray[1].MaxIndex()
AnzahlSpalten:=TestArray[2].MaxIndex()
MsgBox AnzahlZeilen=%AnzahlZeilen%, AnzahlSpalten=%AnzahlSpalten%
gosub, ShowArray
; Funktion einfügen Sortiere nach Spalte N
gosub, ShowArray
ExitApp
ShowArray:
loop, % AnzahlZeilen + 1
{
;beginne mit Zeile 0
Zeile := A_Index - 1
loop, % AnzahlSpalten
{
Spalte:=A_Index
gurk := TestArray[Zeile, A_Index]
text.= "[" . Zeile . "|" . Spalte . "] = " . gurk . "`n`r"
}
}
MsgBox %text%
text:=""
return