SortStructuredArray()

Syntax

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

Parameter

ArrayName() Das zu sortierende Array.
Optionen Dies kann eine Kombination der folgenden Werte sein:
  #PB_Sort_Ascending : Sortiert das Array in aufsteigender Richtung (kleine Zahlen zuerst)
  #PB_Sort_Descending: Sortiert das Array in absteigender Richtung (große Zahlen zuerst)
  #PB_Sort_NoCase    : Sortiert das String-Array ohne Berücksichtigung der Groß-/Kleinschreibung (a=A, b=B etc..)
OffsetOf(Struktur\Feld) Offset des Feldes in der Struktur. OffsetOf() kann verwendet werden, um die Position eines Feldes in der dem Array zugewiesenen Struktur zu ermitteln, nach dem sortiert werden soll.
TypeOf(Struktur\Feld) Der Feld-Typ des Feldes in der Struktur. Dieser muss mit dem tatsächlichen Struktur-Feld-Typ übereinstimmen. TypeOf() kann verwendet werden, um automatisch den Feld-Typ zu ermitteln. Verfügbare Typen sind:
  #PB_Byte     : Das Strukturfeld, nach dem sortiert werden soll, ist ein Byte (.b)
  #PB_Word     : Das Strukturfeld, nach dem sortiert werden soll, ist ein Word (.w)
  #PB_Long     : Das Strukturfeld, nach dem sortiert werden soll, ist ein Long (.l)
  #PB_String   : Das Strukturfeld, nach dem sortiert werden soll, ist ein String (.s oder $), Fixed Strings werden nicht unterstützt.
  #PB_Float    : Das Strukturfeld, nach dem sortiert werden soll, ist ein Float (.f)
  #PB_Double   : Das Strukturfeld, nach dem sortiert werden soll, ist ein Double (.d)
  #PB_Quad     : Das Strukturfeld, nach dem sortiert werden soll, ist ein Quad (.q)
  #PB_Character: Das Strukturfeld, nach dem sortiert werden soll, ist ein Character (.c)  
  #PB_Integer  : Das Strukturfeld, nach dem sortiert werden soll, ist ein Integer (.i)
  #PB_Ascii    : Das Strukturfeld, nach dem sortiert werden soll, ist ein Ascii-Zeichen (.a)
  #PB_Unicode  : Das Strukturfeld, nach dem sortiert werden soll, ist ein Unicode-Zeichen (.u)
Start, Ende (optional) Der Index des ersten und letzten Elements im Array, welche sortiert werden sollen. Wenn diese Parameter nicht angegeben werden, dann wird das ganze Arrays sortiert.

Anmerkungen

Fixed strings (Strings mit fester Größe) werden nicht von der Sortierfunktion unterstützt.
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.
Nicht-Zahlenwerte (NaN) werden beim Sortieren nicht akzeptiert, da dies zufällige Ergebnisse produziert.

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$ = "Zebra"
  Animals(2)\Speed = 30
  
  ; Sortiert das Array nach dem Feld 'Name$', welches ein String ist
  ;
  SortStructuredArray(Animals(), #PB_Sort_Ascending, OffsetOf(Animal\Name$), TypeOf(Animal\Name$))
  
  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(), #PB_Sort_Ascending, OffsetOf(Animal\Speed), TypeOf(Animal\Speed))
  
  For k=0 To 2
    Debug Animals(k)\Name$+" - Speed: "+Str(Animals(k)\Speed)
  Next

Siehe auch

SortArray(), RandomizeArray()

Unterstützte OS

Alle

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