SortStructuredArray()

Syntax

SortStructuredArray(ArrayName(), Optionen, OffsetOf(Struktur\Feld), Typ [, Start, Ende])
Beschreibung
Sortiert das angegebene Array 'ArrayName()' entsprechend den übergegebenen 'Optionen'. Das Array muss eine zugehörige Struktur besitzen.

OffsetOf() kann verwendet werden, um die Position eines Feldes in der dem Array zugewiesenen Struktur zu ermitteln, nach dem sortiert werden soll.

Der Parameter 'Typ' gibt den Typ des Feldes in der Struktur an. Dieser muss mit dem tatsächlich in der Struktur enthaltenen Feldtyp übereinstimmen. Verfügbare Typen sind:
  #PB_Sort_Byte   : Das Strukturfeld, nach dem sortiert werden soll, ist vom Typ Byte (.b)
  #PB_Sort_Word   : Das Strukturfeld, nach dem sortiert werden soll, ist vom Typ Word (.w)
  #PB_Sort_Long   : Das Strukturfeld, nach dem sortiert werden soll, ist vom Typ Long (.l)
  #PB_Sort_String : Das Strukturfeld, nach dem sortiert werden soll, ist vom Typ String (.s oder $)
  #PB_Sort_Float  : Das Strukturfeld, nach dem sortiert werden soll, ist vom Typ Float (.f)
Ein optionaler 'Start' - 'Ende' Bereich kann angegeben werden.

'Optionen' kann einen der folgenden Werte annehmen:

0: Sortiert das Array in aufsteigender Richtung (kleine Zahlen zuerst)
1: Sortiert das Array in absteigender Richtung (große Zahlen zuerst)
2: Sortiert ein String-Array ohne Berücksichtigung der Groß-/Kleinschreibung (a=A, b=B etc..) in aufsteigender Richtung
3: Sortiert ein String-Array ohne Berücksichtigung der Groß-/Kleinschreibung (a=A, b=B etc..) in absteigender Richtung

Hinweis: Ist ein Array nicht vollständig gefüllt, dann werden 'Null'-Elemente an den Anfang des Arrays (bei aufsteigender Sortier-Richtung) bzw. an das Ende des Arrays (bei absteigender Sortier-Richtung) sortiert.

Beispiel:
  Structure Animal
    Name$
    Speed.l
  EndStructure
  
  Dim Animals.Animal(2)
  
  Animals(0)\Name$ = "Tiger"
  Animals(0)\Speed = 10
  
  Animals(1)\Name$ = "Jaguar"
  Animals(1)\Speed = 40
  
  Animals(2)\Name$ = "Zebre"
  Animals(2)\Speed = 30
  
  ; Sortiert das Array nach dem Feld 'Name$', welches ein String ist
  ;
  SortStructuredArray(Animals(), 0, OffsetOf(Animal\Name$), #PB_Sort_String)
  
  For k=0 To 2
    Debug Animals(k)\Name$+" - Speed: "+Str(Animals(k)\Speed)
  Next
  
  ; Sortiert das Array nach dem Feld 'Speed', welches ein Long ist
  ;
  SortStructuredArray(Animals(), 0, OffsetOf(Animal\Speed), #PB_Sort_Long)
  
  For k=0 To 2
    Debug Animals(k)\Name$+" - Speed: "+Str(Animals(k)\Speed)
  Next

Unterstützte OS

Windows, Linux, MacOS X

<- SortList() - Sort Inhaltsverzeichnis - SortStructuredList() ->