Array-Datenbank ordnen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
DarkSoul
Beiträge: 689
Registriert: 19.10.2006 12:51

Array-Datenbank ordnen

Beitrag von DarkSoul »

problem:

ich habe 5 arrays als datenbank:
Dim SongS.s(10000)
Dim SongI.s(10000)
Dim SongA.s(10000)
Dim SongF.s(10000)
Dim SongState(10000)
Wie ordne ich SongS wie mit SortArray() alphabetisch , so dass sich SongI,SongA usw. mit ordnen und die datensätze nicht durcheinanderkommen?

Dann würde ich das gerne so haben:
SongS wird in einem listicon aufgelisten (nicht alle datensätze!!!, nach SongI und SongA wird vorher verschiednermaßen gefiltert.) Welche Datensätze gerade angezeigt werden, speicehre ich in

Filter (schema!):
Dim States.w(10000)
filertA=Irgendwas
FilterB=Irgendwas
StatesCounter=0
For a = 0 to 10000
if FilerA=SongA(a) and filterI=SongI(a)
States(StatesCounter)=SongS(a)
addgadgetitem(0,StatesCounter,SongS(a))
endif
next a
StatesCounter -1


Sates(0) enthält die datensatznummer des ersten Datensatzes, states(1) die des zweiten usw.

nun will ich, dass man die angezeigten Datensätze durch ziehen mit der Maus in der reihenfolge ändern kann, so dass dies im listenfeld UND an den Arrays ändert. (und zwar immer datensatzweise, nicht nur SongS()!)
und wie gesagt - auch auf tastendruck alphabetisch ordbar sein

>PB 3.3<
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Dazu nimmst du am besten eine Struktur

Code: Alles auswählen

Structure Song
  s.s
  i.s
  a.s
  f.s
  state.l
EndStructure

Dim Song.Song(10000)

;Songs in Array eintrage

SortStructuredArray(Song(), 2, OffsetOf(Song\s), #PB_Sort_String)

;Songs filtern und im ListIconGadget anzeigen
Mehr über Strukturen findest du auch in der Hilfe.

Hab den Thread mal dahin verschoben, wo er hingehört.
Antworten