Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

Morphrowsky

[VB.NET] Como fazer um 'ranking' de valores no textbox

Mensagens Recomendadas

Morphrowsky    0
Morphrowsky

Olá, minha dúvida é a seguinte, já criei o sistema de listar ele e as vezes que repetiu mas eu gostaria agora

de fazer o seguinte

o "IP" que repetiu mais vezes ficar em primeiro lugar, o segundo em segundo

e assim em diante

Dim itemlist As New List(Of String)

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim strReturn As New System.Text.StringBuilder

Dim lItems As New Dictionary(Of String, Integer)

Dim intCount As Integer = 0

Dim strCurrentItem As String = String.Empty

itemlist.Add(ip.Text)

'Loop through listbox grabbing items...

For Each nItem As String In itemlist

If Not (lItems.ContainsKey(nItem)) Then 'Add listbox item to dictionary if not in there...

'The current item we are looking at...

strCurrentItem = nItem

'Check how many occurances of this items there are in the referenced listbox...

For Each sItem As String In itemlist

If sItem.Equals(strCurrentItem) Then 'We have a match add to the count...

intCount += 1

End If

Next

'Finally add the item to the dictionary with the items count...

lItems.Add(nItem, intCount)

'Reset intCount for next item... and strCurrentItem

intCount = 0

strCurrentItem = String.Empty

End If

Next

'Add to the string builder...

For i As Integer = 0 To lItems.Count - 1

strReturn.AppendLine(lItems.Values(i).ToString & " | " & lItems.Keys(i).ToString)

Next

richtextbox1.Text = (strReturn.ToString)

End Sub

O Código está funcionando perfeitamente mas está saindo assim:

3 | 192.99.156.98

10 | 186.206.152.52

5 | 186.206.144.4

2 | 186.206.155.7

43 | 186.66.6.2

6 | 186.206.152.77

Ele está totalmente desorganizado e não estou conseguindo resolver gostaria que me ajudem. não sei, tipo um sort de array

eu quero mesmo é organizar esses ips e seus valores olhem... gostaria que ficasse assim(esses ips é apenas exemplo, os ips vem do strreturn.tostring)

43 | 186.66.6.2

10 | 186.206.152.52

6 | 186.206.152.77

5 | 186.206.144.4

3 | 192.99.156.98

2 | 186.206.155.7

"O que tem valor mais alto ficasse em primeiro que no caso esse valor é as repetições dele.".

43 | 186.66.6.2 << no caso é este oque está com mais valor

eu tambem gostaria que apagasse o valor dele e o separador 43 | e escrevesse apenas o IP em uma outra string que no caso seria (186.66.6.2) obrigado a atenção.

Editado por Morphrowsky

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.