Ir para conteúdo
Fórum Script Brasil
  • 0

[Resolvido] Contar palavras repetidas na string


Guest dells

Pergunta

Eu preciso fazer uma contagem de quantos estados são listados na string criada em tempo de execução. É só contar quantas vezes cada palavra se repete. Meu problema é que os estados não vem em ordem ficam misturados.

Não posso usar Order by estado asc porque já estou usando order by.

Meu código abaixo conta quantas vezes se repetiu mas só funciona se estiverem em sequência.

estado = Minas Gerais,São Paulo,São Paulo,São Paulo,Rio de Janeiro,Rio de Janeiro,Rio de Janeiro,São Paulo,São Paulo,Rio de Janeiro,Rio de Janeiro,Rio de Janeiro

Searchlocal = Split(estado, ",")

antiga = Searchlocal(0)

For i = 0 to UBound(Searchlocal)

nova = Searchlocal(i)

if antiga=nova then

qtds=qtds+1

else

if qtds<>0 then

response.write antiga&" ("&qtds&")<br>"

qtds="1"

end if

end if

antiga = Searchlocal(i)

next

Nesse exemplo a contagem acontece mas repete os estados novamente.

Por exemplo:

Minas Gerais (1)

São Paulo (3)

Rio de Janeiro (3)

São Paulo (2) > Tá vendo aqui o estado repetiu porque não esta em ordem a listagem.

Eu só preciso contar quantas vezes cada estado se repetiu, mas sem exibi-lo novamente, você tem uma idéia de como fazer isso???

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Tem uma função que ordena o array por ordem alfabética tente usar para ver se resolve seu problema

ficaria assim

FUNCTION SortArray(varArray)
For i = UBound(varArray) - 1 To 1 Step - 1
MaxVal = varArray(i)
MaxIndex = i

For j = 0 To i
If varArray(j) > MaxVal Then
MaxVal = varArray(j)
MaxIndex = j
End If
Next

If MaxIndex < i Then
varArray(MaxIndex) = varArray(i)
varArray(i) = MaxVal
End If
Next 
END FUNCTION

estado = "Minas Gerais,São Paulo,São Paulo,São Paulo,Rio de Janeiro,Rio de Janeiro,Rio de Janeiro,São Paulo,São Paulo,Rio de Janeiro,Rio de Janeiro,Rio de Janeiro"

Searchlocal = Split(estado, ",")
antiga = Searchlocal(0)

SortArray Searchlocal

For i = 0 to UBound(Searchlocal)

nova = Searchlocal(i)

if antiga=nova then

    qtds=qtds+1

else

    if qtds<>0 then
    
    response.write antiga&" ("&qtds&")<br>"
    qtds="1"
    
    end if

end if


antiga = Searchlocal(i)

next

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...