CONTAR E EXIBIR ITENS DUPLICADOS EM LISTBOX
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!
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!
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/
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/
Isso dae e .NET ALEVALE
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
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
Faça assim
Para chamar o procedimento faça assim dentro de um CommandButtom
Só pra lembrar eu utilizo somente dois ListBox (List1 e List2) portanto caso tenha outro nome mude os nomes no código acima
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
SIMPLESMENTE, PERFEITO!
Obrigadão mesmo cara
Fechando o tópico e te dando os merecidos creditos
Obrigadão mesmo cara
Fechando o tópico e te dando os merecidos creditos
Tópico encerrado , respostas não são mais permitidas