Array sortieren
-
Desert Storm schrieb:
Ich hab in der ListBox zusammengesetzte Strings und in den Arrays die Strings einzeln.
Möchte das ausgewählten Elements in der ListBox haben, damit ich das Element, was an der Stelle auch im Array steht zusammen mit dem Element in der ListBox verschieben kann. Aber irgendwie klappt das nicht.
gibt für mich keinen sinn, sorry ist so
Mach mal ein bsp
z.b.
Listbox
A B C
D E Fund im
array
A
B
C
D
E
Fwenn du jetzt die 2te zeile selektierst ( D E F --> was ja deine ZUSAMMENGESTZTE STRINGS sein sollen und im array einzelt )
welchen wert soll er nehmen? also D oder E oder F?
-
Ich persönlich würde erst gar nicht versuchen die Listen synchron zu halten. Warum willst Du das machen?
Normalerweise brauchst doch Du die Liste erst, wenn der Benutzer es so rumgeschoben hat wie er es will. Und erst dann brauchst Du ja die Liste, oder?Somit würde ich beim Liste aufbauen einfach den Zeiger auf Deine Interne Struktur übergeben (via SetItemDataPtr).
Und am schluss einfach die liste der Reihe nach durchgehen und dann die Daten wieder in ein CStringArray stopfen...
-
Ich hab das dann mit 3 Arrays gemacht. Weil ich jedes Array in ner anderen externen Datei speichern muss. Also hab ich ein Array für A eins für B und eins für C. Das sieht denn ca. so auc
Array1:
A
DArray2:
B
EArray3:
C
Fund in der ListBox sieht das denn so aus
ListBox:
ABC
DEFund wenn die 2te Zeile ausgewählt wird un nach oben geschobn wird, sollen auch D,E,F in den 3 Arrays nach oben geschoben werden.
-
Dann mach eine Struktur:
typedef struct DatenInDerListBox { CString a; CString b; CString c; } DatenInDerListBox;
Und dieses stopfst Du jetzt beim anlegenen der ListBox via SetItemDataPtr rein und holst es am ende wieder raus und füllst damit Deine Arrays wieder...
-
Hab aber noch ein Array was nicht in der ListBox ist, sondern nebenher läuft.
Wie soll ichd das da machen??
-
Da stopfst Du die Werte halt auch in die Struktur rein, wo ist das Problem?
-
Also ich pack die Werte von dem Array was net in der ListBox is in die Struktur und wie änder ich dann die Reihenfolge der Einträge? Und ich weiß ja gar nicht, wie viele Variablen ich in der Struktur brauche.
-
hmm
dann würd ich mir ein Buch/Tutorial zu gemüte führen
Wenn du 3 arrays hast und immer in der listbox vom array[i] den wert anzeigst, dann packst du die 3 werte in das struct wie der Jochen schon meinte. Du kannst dann auch nur 3 werte speichern. und dann hast du ein array aus structs
da geht dein CStringArray ja schlecht deswegen kannst einen vector nehmen der das struct speichert
wenn du z.b. dieses hier hast
vec[0] // hier ist das struct drin mit ABC //und vec[1] // hier ist wieder ein struct drin mit DEF // und du jetzt den button hast mit pfeil nach oben, dann vertaust du das struct ( swap ) vec[0] // DEF vec[1] // ABC
genau so wolltest es ja oder?
vec[o] liefert dir aber nicht den zusammengesetzten string sondern ein struct zurück, und da musst halt die 3 teile rausnehmen.
Du kannst aber auch eine "manager" kalsse machen die 3 CStringArrays hat. und diese macht in der methode "MoveUp", bei allen 2 arrays "gleichzeitig" ein swap.
du musst das aber nicht beruflich lösen, oder?
:xmas1: :xmas1: :xmas1: :xmas2: :xmas2: :xmas1: :xmas1: :xmas1:
-
Hab jetzt nen anderen Weg gefunden. Hatte irgendwie n paar Klammern zu viel und die hab ich weggemacht und jetzt geht das auch mit den Arrays. Werd mir aber noch n Tut holen mit Vektoren und sowas alles.
Und ne das is nicht beruflich, wieso? :xmas1: :xmas2: :xmas1:
-
Desert Storm schrieb:
Und ne das is nicht beruflich, wieso?
Da Du sonst den falschen Beruf hättest