Leider weiß ich nicht, ob man überhaupt mehrdimensionale Array sortieren lassen kann.
Aber ich vermute, dass SortStructuredArray() einfach das im Speicher liegende 1D-Array sortiert.
Von daher sollte dieses Beispiel funktionieren.
Code: Alles auswählen
#RandomString_Letter = "abcdefghijklmnopqrstuvwxyz"
Structure CharacterArray
c.c[0]
EndStructure
Procedure.s RandomString(Length.i, CharacterSet.s=#RandomString_Letter)
Protected Index.i, Len.i = Len(CharacterSet)-1
Protected *CharacterSet.CharacterArray = @CharacterSet
Protected String.s = Space(Length)
Protected *String.CharacterArray = @String
While Index < Length
*String\c[Index] = *CharacterSet\c[Random(Len)]
Index + 1
Wend
ProcedureReturn String
EndProcedure
Structure S_Bild
Zeit.s
Bild.s
EndStructure
Global Dim Images.S_Bild(3,6,9)
For x = 0 To 3
For y = 0 To 6
For z = 0 To 9
Images(x,y,z)\Bild = RandomString(8,"abcdefghijklmnopqrstuvwxyz")
Next
Next
Next
For y = 0 To 2
For z = 0 To 9
Debug "(0,"+Str(y)+","+Str(z)+") = "+Images(0,y,z)\ Bild
Next
Next
For y = 0 To 2
SortStructuredArray(Images(), #PB_Sort_Ascending, OffsetOf(S_Bild\Bild), #PB_Sort_String, y*10, y*10+9)
Next
Debug "---"
For y = 0 To 2
For z = 0 To 9
Debug "(0,"+Str(y)+","+Str(z)+") = "+Images(0,y,z)\ Bild
Next
Next
Das Sortiert immer genau die 10 Bilder aus der letzten Dimension.