Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C++CLI / VB .Net / .Net-Framework » ListView nach 2.Spalte sortieren

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
12.05.2005, 17:52 Uhr
mirmi



Hallo

Habe in meinem Programm einige ListViews in verschiedenen Frames. Diese werden immer wieder geleert, neu befüllt, Einträge werden hinzugefügt oder gelöscht.
Nach dem "fertigstellen" möchte ich die Liste vor dem nächsten Update sortieren.
Und zwar nach der 2. Spalte.

Habs bereits mit dem einfügen einer Comparer-Klasse aus dem "2- spaltige listbox"-Thread (vb-Magazin.de) versucht. Funktioniert nicht, weil der Comparer immer anspringt, auch wenn die Liste soeben geleert wurde und neu befüllt wird. Gleich beim 2. Eintrag crasht es.

Gibt es eine Alternative für die in Vb6 verfügbare ListView Eigenschaft .SortKey, für die Spalte nach der sortiert werden soll?

Bitte um Hilfe!
und Bedanke mich vorab!
grüße
mirmi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.05.2005, 18:59 Uhr
mirmi



Also, ich hab das jetzt so gemacht: (sicher nicht die schönste Lösung, aber es funzt )

Listeneinträge in 1dimensionales Array eintragen. Mit ; als Trennzeichen. Dieses 1dimensionale Array sortieren und anschliessend wieder splitten und in die Liste eintragen.

Sortierungs-Prozedur:
Sub ShellSort(ByRef sort() As String, ByVal numOfElements As Short)
'sortiert die Elemente der Arrays sort() in absteigender Riehenfolge und übergibt das Ergebnis der aufrufenden Prozedur
Dim temp As String
Dim i, j, span As Short

span = numOfElements \ 2
Do While span > 0
For i = span To numOfElements - 1
j = i - span
For j = (i - span) To 0 Step -span
If sort(j) <= sort(j + span) Then Exit For
'Arrayelemente, die nicht in der richtigen Reihenfolge stehen, vertauschen
temp = sort(j)
sort(j) = sort(j + span)
sort(j + span) = temp
Next j
Next i
span = span \ 2
Loop
End Sub

danke und liegrü
mirmi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C++CLI / VB .Net / .Net-Framework ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: