Seite 1 von 1

Arbeitsbereich für eingebaute Sortierfunktionen einschränken

Verfasst: 18.05.2009 14:13
von WPö
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:

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
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
----------------------

Verfasst: 19.05.2009 16:40
von Andesdaf
trallali, trallalo, trallahopsasa...

http://www.purebasic.fr/german/viewtopic.php?t=16955

Verfasst: 19.05.2009 17:55
von Falko
Im Bezug auf:
>>> Kann das 'mal jemand in die deutsche Hilfe einfließen lassen? Evtl. diesen Beitrag verschieben.

Schreib das bitte mal an Andrè, der die Übersetzung der deutschen Hilfe macht.
Seine Adresse steht unter www.PureArea.net

Im Moment ist er aber noch in Urlaubsstimmung

Gruß Falko

Verfasst: 20.05.2009 09:10
von WPö
Ups – falsche Rubrik – dachte ich's mir doch. Wollte aber nur noch die Info schnell loswerden, damit auch Andere 'was davon haben.
Andesdaf: Nicht böse sein.
Falko: Erledigt, André habe ich angeschrieben.

Grüße - WPo

Verfasst: 21.05.2009 17:15
von Andesdaf
> Andesdaf: Nicht böse sein.
Bin nicht böse. Habe dich nur singend drauf hingewiesen :mrgreen: