Folgendes folgender code funktioniert leider noch nicht
Er soll mir wenn ich neue elemente in die liste einfüge den dafür besten position in der liste zurückgeben.
hier mal der demo code, lauffähig.
wenn alles richtig wäre musste er mir hier position 0 vorschlagen.
wenn ich nun ein element mit dem wert 0 hinzufüge sollte position 3 bzw 2 kommen.
kurze erklärung zu der structur:
Likes sind praktisch bewertungen für songs , demnach soll der song mit den meisten bewertung ganz oben landen .
hoffe das is so weit verständlich
ihr könnt den code auch gerne optimieren und danke für die Hilfe.
Code: Alles auswählen
;demo sort list
Structure Musicfile
Likes.i
EndStructure
Global NewList Playlist.Musicfile()
Procedure MusicManager_GetSortPosition(*music.musicfile,List Musiclist.musicfile())
Protected Position.i = 0
Protected LastElement = ListIndex(Musiclist())
;// get position for song
ResetList(Musiclist())
ForEach Musiclist()
If Musiclist()\Likes < *Music\Likes
Position = ListIndex(Musiclist())
EndIf
Next
SelectElement(Musiclist(),LastElement)
ProcedureReturn Position
EndProcedure
AddElement(Playlist())
Playlist()\Likes = 40
AddElement(Playlist())
Playlist()\Likes = 20
AddElement(Playlist())
Playlist()\Likes = 0
;// get position for last added element
AddElement(Playlist())
Playlist()\Likes = 50
Debug MusicManager_GetSortPosition(Playlist(),Playlist())