Arbeitsbereich für eingebaute Sortierfunktionen einschränken
Verfasst: 18.05.2009 14:13
In der Hilfe zu PB V4.3 steht zwar viel, doch noch lange nicht alles Wissenswerte. Z.B. bei den eingebauten Sortierfunktionen sind optionale Parameter Start und Ende anzugeben. Wie das mit mehrdimensionalen Feldern funktioniert, ist anscheinend nirgends beschrieben.
Es soll ein zweidimensionales Feld nach z.B. Feld(1,x) aufsteigend sortiert werden:
Um dasselbe Feld nach Feld(x,3) zu sortieren (wurde hier: http://www.purebasic.fr/german/viewtopi ... turedarray schonmal gefragt), muß man sich eine eigene Routine zusammenschrauben, da die PB-eigenen keinen Modulo-Parameter erlauben.
Kann das 'mal jemand in die deutsche Hilfe einfließen lassen? Evtl. diesen Beitrag verschieben.
Danke
Grüße - WPo
----------------------
Aktion: Thread verschoben
Quelle>Ziel: FAQ & Tutorials > Bugs
Begründung: Kein FAQ oder Tutorial-Thema
Datum: 19.05.2009, 16:50
Moderator: Andesdaf
----------------------
Es soll ein zweidimensionales Feld nach z.B. Feld(1,x) aufsteigend sortiert werden:
Code: Alles auswählen
Structure struct
Start.l
Stop.l
EndStructure
Dim Feld.struct(2,5)
For i=0 To 2
For j=0 To 5
Feld(i,j)\Start = (8-i)*10+(5-j)*100
Feld(i,j)\Stop = (8-i)*10+(5-j)*100+1
Next j
Next i
SortStructuredArray(Feld(), #PB_Sort_Ascending, OffsetOf(struct\Start), #PB_Sort_Long, 1*(ArraySize(Feld(),2)+1), (1+1)*(ArraySize(Feld(),2)+1)-1)
For i=0 To 2
For j=0 To 5
Debug Str(Feld(i,j)\Start) + " / " + Str(Feld(i,j)\Stop)
Next j
Next i
Debug ArraySize(Feld(), 1)
Debug ArraySize(Feld(), 2)
;Werte für Start und Ende in SortStructuredArray(), wahrscheinlich auch in anderen Sortierroutinen:
;(0,0) -> 1
;(0,1) -> 2
;(0,2) -> 3
;(0,3) -> 4
;(0,4) -> 5
;(0,5) -> 6
;(1,0) -> 7
;(1,1) -> 8
;..........
;(2,5) -> 18
Kann das 'mal jemand in die deutsche Hilfe einfließen lassen? Evtl. diesen Beitrag verschieben.
Danke
Grüße - WPo
----------------------
Aktion: Thread verschoben
Quelle>Ziel: FAQ & Tutorials > Bugs
Begründung: Kein FAQ oder Tutorial-Thema
Datum: 19.05.2009, 16:50
Moderator: Andesdaf
----------------------