Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Super EU

Pesquisa em String? Como saber quantas vezes ...

Recommended Posts

Fala ae Galera, boa noite, tudo bem?Estou com outro problema. Eu tenho uma string, e no meio dessa string, existem varias palavras repetidas. Como que eu posso fazer, pra saber quantas vezes uma determinada palavra aparede repetida? Por exemplo.. eu tenho a string "msdn msdn Daniel Gimenez Msdn br brasil". Como que eu posso fazer, pra saber quantas vezes a palavra MSDN aparece nessa String. Não to conseguindo fazer nada que chegue perto disso. Alguem pode me ajudar por favor?Obrigado =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dim Aux As Integer Dim Posicao  As Integer Dim Cont As Integer  Posicao = 1 Cont = 0  For i = 0 To Len(Text1.Text)        Aux = InStr(Posicao, Text1.Text, "a", vbTextCompare)    If Aux <> 0 Then      Cont = Cont + 1      Else      MsgBox "A Letra apareceu " & Cont & " vezez"      Exit Sub    End If    Posicao = Aux + 1      Next i

Dê uma olhdada ae, e faça as alterações que achar necessário para que o código fique otimizado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você também pode fazer assim:

dim palavras() As stringif text1.text <> "" thenpalavras = split(text1.text," ")dim x,cont as longfor x=lbound(palavras) to ubound(palavras)   if palavras(x) = palavra_procurada then cont = cont + 1next xend if

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você também pode fazer assim:CODEdim palavras() As stringif text1.text <> "" thenpalavras = split(text1.text," ")dim x,cont as longfor x=lbound(palavras) to ubound(palavras)  if palavras(x) = palavra_procurada then cont = cont + 1next xend if

Este código não funciona perfeitamente, pois se a palavra procurada for "a" na string "casa", que por sua teria que retornar um valor 2, mas na verdade retorna 0, pois não tem espaço na string.É necessário a utilização da função Instr, para que assim o seu código funcione perfeitamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você também pode usar a seguinte função.

 

' Função para contar quantas vezes aparece determinada' expressão em uma string.' Uso: Num = Conta (string, expressão)'Function Conta(ByVal PS As String, texto As String) As Variant    Dim Cont As Integer    Cont = 0    PS = UCase$(PS)    texto = UCase$(texto)    Do While InStr(PS, texto)    PS = Mid$(PS, InStr(PS, texto) + Len(texto))    Cont = Cont + 1 'Contando    Loop    Conta = ContEnd Function

Ela retorna quantas vezes aparece a expressão na string informada.

 

Funciona bem! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este código não funciona perfeitamente, pois se a palavra procurada for "a" na string "casa", que por sua teria que retornar um valor 2, mas na verdade retorna 0, pois não tem espaço na string.

É que eu fiz pensando em palavras e ñ em letras :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.