CONTAR E EXIBIR ITENS DUPLICADOS EM LISTBOX

PAYDANA 13/10/2012 01:30:03
#411982
Obrigado a todos

Private Sub Form_Load()
With List1
.AddItem [Ô]Pera[Ô]
.AddItem [Ô]Uva[Ô]
.AddItem [Ô]Banana[Ô]
.AddItem [Ô]Laranja[Ô]
.AddItem [Ô]Uva[Ô]
.AddItem [Ô]Maçã[Ô]
.AddItem [Ô]Abóbora[Ô]
.AddItem [Ô]Uva[Ô]
.AddItem [Ô]Pera[Ô]
.AddItem [Ô]Kiwi[Ô]
.AddItem [Ô]Uva[Ô]
End With
End Sub

Tenho esta lista carregada como exemplo

Dae preciso obter o seguinte resultado

Pera = 2
Uva = 4
Banana = 1
Laranja = 1
Maçã = 1
Abóbora = 1
Kiwi = 1
End Sub

Tenho que saber quantas vezes cada item apareceu na listbox

Muito obrigado!
ALEVALE 13/10/2012 09:06:29
#411984
Veja se isso ajuda você.

Public Shared Sub SubTotals(ByVal stockData As String(,))

Dim tmpDict As Dictionary(Of String, Integer) = New Dictionary(Of String, Integer)
For i As Integer = 0 To stockData.GetUpperBound(0)
Dim stockRecord(2) As String
stockRecord(0) = stockData(i, 0) : stockRecord(1) = stockData(i, 1)
If tmpDict.ContainsKey(stockRecord(0) & [Ô]@[Ô] & stockRecord(1)) Then
tmpDict.Item(stockRecord(0) & [Ô]@[Ô] & stockRecord(1)) = tmpDict.Item(stockRecord(0) & [Ô]@[Ô] & stockRecord(1)) + 1
Else
tmpDict.Add(stockRecord(0) & [Ô]@[Ô] & stockRecord(1), 1)
End If
Next
Dim outList(tmpDict.Count, 3) As String
Dim j As Integer = 0
For Each pairItem As KeyValuePair(Of String, Integer) In tmpDict
Dim strLine As String = pairItem.Key
Dim strList = Split(strLine, [Ô]@[Ô])
outList(j, 0) = strList(0) : outList(j, 1) = strList(1) & [Ô]:[Ô] : outList(j, 2) = [Ô]Count: [Ô] & pairItem.Value.ToString()
j = j + 1
Next
[ô]debug only:
For i As Integer = 0 To outList.GetUpperBound(0)
Console.WriteLine(String.Format([Ô]{0}{1}****{2}****{3}{4}[Ô], vbCrLf, outList(i, 0), outList(i, 1), outList(i, 2), vbCrLf))
Next
End Sub

http://www.dreamincode.net/forums/topic/192691-array-duplicate-counts/
PAYDANA 13/10/2012 11:02:14
#411990
Isso dae e .NET ALEVALE
PAYDANA 13/10/2012 12:44:20
#411992
Pessoal e quase isso daqui ó

Private Sub Command2_Click()
davez = List2.List(0)

For Y = 0 To List2.ListCount
S = List2.List(Y)
If S = davez Then List3.AddItem S & 1
Next Y

End Sub

So que ae ta adicionando os 3 repetidos

preciso e que adicione o item e quantas vezes ele reppetiu
FILMAN 13/10/2012 17:51:00
#412007
Resposta escolhida
Faça assim

Private Sub Verifica()
Dim Cont As Integer
Dim iVet As Integer
Dim i, x, z As Integer
Dim item_atual As String
Dim guarda_contagem() As String

iVet = 0
For i = 0 To List1.ListCount - 1
item_atual = List1.List(i)
Cont = 0
For x = 0 To List1.ListCount - 1
If (item_atual = List1.List(x)) Then
Cont = Cont + 1
End If
Next
If Cont > 0 Then
ReDim Preserve guarda_contagem(iVet)
If Not Repetido(item_atual & [Ô]|[Ô] & Cont, guarda_contagem) Then
guarda_contagem(iVet) = item_atual & [Ô]|[Ô] & Cont
iVet = iVet + 1
End If
End If
Next

For i = 0 To UBound(guarda_contagem) - 1
List2.AddItem Split(guarda_contagem(i), [Ô]|[Ô])(0) & vbTab & vbTab & Split(guarda_contagem(i), [Ô]|[Ô])(1)
Next
End Sub

Public Function Repetido(Palavra As String, Lista() As String) As Boolean
Dim Cont As Integer

Repetido = False
For i = 0 To UBound(Lista)
If Palavra = Lista(i) Then Cont = Cont + 1
Next
If Cont > 0 Then Let Repetido = True
End Function


Para chamar o procedimento faça assim dentro de um CommandButtom
Private Sub Command1_Click()
Call Verifica
End Sub



Só pra lembrar eu utilizo somente dois ListBox (List1 e List2) portanto caso tenha outro nome mude os nomes no código acima
PAYDANA 13/10/2012 18:00:00
#412008
SIMPLESMENTE, PERFEITO!

Obrigadão mesmo cara

Fechando o tópico e te dando os merecidos creditos
Tópico encerrado , respostas não são mais permitidas