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.
'Optionen' kann einer 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..)
Hinweise: 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.
Fixed strings (Strings mit fester Größe) werden nicht von der Sortierfunktion unterstützt.
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 ein Byte (.b) #PB_Sort_Word : Das Strukturfeld, nach dem sortiert werden soll, ist ein Word (.w) #PB_Sort_Long : Das Strukturfeld, nach dem sortiert werden soll, ist ein Long (.l) #PB_Sort_String : Das Strukturfeld, nach dem sortiert werden soll, ist ein String (.s oder $), Fixed Strings werden nicht unterstützt. #PB_Sort_Float : Das Strukturfeld, nach dem sortiert werden soll, ist ein Float (.f) #PB_Sort_Double : Das Strukturfeld, nach dem sortiert werden soll, ist ein Double (.d) #PB_Sort_Quad : Das Strukturfeld, nach dem sortiert werden soll, ist ein Quad (.q) #PB_Sort_Character: Das Strukturfeld, nach dem sortiert werden soll, ist ein Character (.c) #PB_Sort_Integer : Das Strukturfeld, nach dem sortiert werden soll, ist ein Integer (.i) #PB_Sort_Ascii : Das Strukturfeld, nach dem sortiert werden soll, ist ein Ascii-Zeichen (.a) #PB_Sort_Unicode : Das Strukturfeld, nach dem sortiert werden soll, ist ein Unicode-Zeichen (.u)Ein optionaler 'Start' - 'Ende' Bereich kann angegeben werden.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$), #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(), #PB_Sort_Ascending, OffsetOf(Animal\Speed), #PB_Sort_Long) For k=0 To 2 Debug Animals(k)\Name$+" - Speed: "+Str(Animals(k)\Speed) Next
Unterstützte OS
Alle