QTDE DE CARACTER DENTRO DA UMA STRING
Alguém saberia me dizer, se existe alguma funçao no VB que me retorne a quantidade de um determinado caracter que estar dentro de uma string. Tipo eu tenho uma string "programando em visual basic", e quero que a funçao me retorne com a quatidade de "a" que existe dentro dessa string, no caso o valor seria 4.
Dim Armazena As String
Private Sub Command1_Click()
Armazena = txtTeste.Text
Dim Count As Integer
For x = 1 To Len(Armazena)
If Mid(Armazena, x, 1) = "a" Then
Count = Count + 1
End If
Next x
MsgBox Count
End Sub
no caso ai.... a variavel é preenchida pelo conteudo da textbox ( q chamei de txtTeste)... agora é so vc adequar a sua necessidade;
RODRIGOGBGOMES
Dessa forma funciona, mas se eu tiver uma string muito grande, vai demorar a percorrer toda a string ou não?
Dessa forma funciona, mas se eu tiver uma string muito grande, vai demorar a percorrer toda a string ou não?
Função do VB não tem, mas vc pode fazer uma função pra isso:
'Para chamar
MsgBox gfContaCaracteres("programando em Visual Basic", "a")
[/c]
PS: Essa função despreza maiúsculas de minúsculas
[c]Function gfContaCaracteres(ByVal pString As String, ByVal pCaracter As String) As Integer
Dim intContator As Integer
Dim intLoop As Integer
intContator = 0
For intLoop = 1 To Len(pString)
If UCase(Mid(pString, intLoop, 1)) = UCase(pCaracter) Then
intContator = intContator + 1
End If
Next intLoop
gfContaCaracteres = intContator
End Function
'Para chamar
MsgBox gfContaCaracteres("programando em Visual Basic", "a")
[/c]
PS: Essa função despreza maiúsculas de minúsculas
é claro q pode demorar um pouco mais....
mais axu q a nivel de usuario isso nao seria notado....
faça uns testes... coloque mais carecteres dentro da variavel... e note a diferença de tempo....
bom, mais de qualquer forma... vc vai ter q ler a variavel .;. do inicio ao fim para contar a qtd de vezes q certo caractere aparece.
mais axu q a nivel de usuario isso nao seria notado....
faça uns testes... coloque mais carecteres dentro da variavel... e note a diferença de tempo....
bom, mais de qualquer forma... vc vai ter q ler a variavel .;. do inicio ao fim para contar a qtd de vezes q certo caractere aparece.
Cara, uma vez eu fiz um P.O.G.(Programação Orientada a Gambiarra) da seguinte forma:
Fera, fiz mais ou menos... Não testei esse exemplo mais ja usei essa logica.
Private Sub Command1_Click()
Dim Memoria1 as String
Dim Armazena as String
Dim Count As Integer
Armazena = txtTeste.Text
Memoria1 = Replace(Armazena,"a", "")
Count = Len(Armazena) - Len(Memoria1)
Msgbox Count
End Sub
Fera, fiz mais ou menos... Não testei esse exemplo mais ja usei essa logica.
verdade... nao tinha me lembrado do replace.
bem mais pratico.... ja q é uma função do proprio vb.
agora vc tem ai 2 opções pra trabalhar.;... é so testar e ver ql fica melhor pra vc.
bem mais pratico.... ja q é uma função do proprio vb.
agora vc tem ai 2 opções pra trabalhar.;... é so testar e ver ql fica melhor pra vc.
Valeu galera pela ajuda, vou usar o replace.
Tópico encerrado , respostas não são mais permitidas