List soort filteren

Status
Niet open voor verdere reacties.

bonnowagt

Gebruiker
Lid geworden
7 dec 2006
Berichten
445
Hallo,

Ik heb een listbox vol met gegevens. Voorbeeld is:
Huis
Raam
Raam
Deur
Huis
Deur
KopBout
Keilbout
Huis
KopboutHuis

enz enz.

Jullie zien dus dat er dubbele items in staan
Mijn vraag is hoe stel ik een listbox samen waarin komt te s5taan. Raam 3 x, Deur 2x enz
Met andere woorden niet dat de dubbele woorden eruit gaan maar hoevaak elk woord er instaat.
Nou zou dat dus met zoeken kunnen maar dan moet gebruiker zelf iets intypen, bijvoorbeeld deur dan is het niet zo moeilijk.
Mijn bedoeling is een button met daaronder de code die dus die listbox 2 vult.

Vriendelijke groet
 
Hoi,

Ik denk dat je het beste bij het toevoegen kan kijken af het betrefte item al in de listbox staat. Ik zal zo even een voorbeeldje maken.

MartinJM
 
Je bedoelt op het moment dat het item bijvoorbeeld Deur wordt ingevoegd, kijken of deze voorkomt en dan dze optellen bij de andere?
 
Ik zal het even verder uitleggen. Ik heb een mediaspeler en die registereerd elk item die wordt afgespeeld. In die listbox komen dus honderden tiotels. Nu wil ik een mogelijkheid dat je bevoorbeeld een toptien kunt samenstellen van de meest afgespeelde titels.


Ik kan de listbox niet meer veranderen in een listview, egzien het uitgebreide programma. Moet dus van een listbox naar een listview als dat mogelijk is
 
Laatst bewerkt:
Wat ik er dan nog voor kan bedenken is een listview gebruiken ipv een listbox. Dan kan je daarin 2 kolommen maken (iets als "Titel" en "Aantal keer gespeeld"). Zet de view op details. Dan kan je de volgende code gebruiken:
[CPP]Dim Input As String = TextBox1.Text
Dim Item() As ListViewItem = ListView1.Items.Find(Input, False)
If Item.Count = 0 Then
Dim NItem As New ListViewItem
NItem.Name = Input
NItem.Text = Input
NItem.SubItems.Add("1x")
ListView1.Items.Add(NItem)
ElseIf Item.Count = 1 Then
Dim NItem As ListViewItem = Item(0)
Dim SubItem As String = NItem.SubItems(1).Text
Dim AantalKeer As Integer = CInt(SubItem.Remove(SubItem.Count - 1, 1))
AantalKeer += 1
NItem.SubItems(1).Text = AantalKeer & "x"
ElseIf Item.Count > 1 Then
MsgBox("Er zou niet meer dan 1 item met dezelfde naam kunnen zijn...")
End If[/CPP]

Dan gebruik je de zoekfunctie van de listbox in plaats van dat je er zelf doorheen moet loopen. Deze code gebruik je dan ook weer bij het toevoegen van de items.

MartinJM

[edit]
Of wil je dat eerst alles in de listbox gezet wordt zodat je er daarna nog een top-tien van kan maken?
[/edit]
 
Laatst bewerkt:
Maar je wordt heel erg bedankt het werkt gewoon goed. Ik bregng het vanuit de listbox naar de listview en dan red ik mij wel om het verder naar een toptien te schrijven
heb alleen textbox aangepast voor de listbox en dan in een for/ next lus

Nogmaasls erg bedankt
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan