Olá amigos do fórum!
Tenho um formulário com um campo “Campo1”, esse campo recebe uma sequência de letras aleatórias de comprimento 25 caracteres.
Ex:
Campo1= abfksnrrrjfkrotplafffhgja
Eu criei uma rotina for/next para localizar letras que se repetem 3 vezes e nesse caso marcar essas sequencias de cor diferente.
Acontece que ao encontrar a primeira sequência ele faz o que precisa fazer mudando a cor da sequência encontrada, porém não continua pesquisando o restante das letras, ou seja, se houver uma outra sequência de três letras iguais ele não marca de cor diferente.
No caso do exemplo acima só localiza no Campo1 a sequencia rrr , ignorando os fff.
ficando assim:
Campo1= abfksnrrrjfkrotplafffhgja
quando na verdade precisaria ficar assim:
Campo1= abfksnrrrjfkrotplafffhgja
Poderiam dar uma olhada no código e se possível indicar onde posso estar errando?
Um outro ponto: como eu faria para pesquisar qualquer tamanho de sequência? Eu fiz de um jeito para comparar de três em três letras. Mas como posso fazer para procurar qualquer que fosse a quantidade repetida, 3, 4, 5, etc., sem precisar colocar um monte de If/End If.
Agradeço a todos que puderem ajudar.
Gerson.
Tenho um formulário com um campo “Campo1”, esse campo recebe uma sequência de letras aleatórias de comprimento 25 caracteres.
Ex:
Campo1= abfksnrrrjfkrotplafffhgja
Eu criei uma rotina for/next para localizar letras que se repetem 3 vezes e nesse caso marcar essas sequencias de cor diferente.
Acontece que ao encontrar a primeira sequência ele faz o que precisa fazer mudando a cor da sequência encontrada, porém não continua pesquisando o restante das letras, ou seja, se houver uma outra sequência de três letras iguais ele não marca de cor diferente.
No caso do exemplo acima só localiza no Campo1 a sequencia rrr , ignorando os fff.
ficando assim:
Campo1= abfksnrrrjfkrotplafffhgja
quando na verdade precisaria ficar assim:
Campo1= abfksnrrrjfkrotplafffhgja
Poderiam dar uma olhada no código e se possível indicar onde posso estar errando?
- Código:
For k = 1 To (Len(Me.Campo1) -1
If Mid(Me.Campo1, k, 1) = Mid(Me.Campo1, (k + 1), 1) Then
If Mid(Me.Campo1, (k + 1), 1) = Mid(Me.Campo1, (k + 2), 1) Then
letra1 = Mid(Me.Campo1, k, 1)
letra2 = Mid(Me.Campo1, k + 1, 1)
letra3 = Mid(Me.Campo1, k + 2, 1)
seq1 = "<font color=blue>" & Mid(Me.Campo1), 1, k - 1)
seq2 = "<font color=red>" & letra1 & letra2 & letra3
seq3 = "<font color=blue>" & Mid(Me.Campo1, k + 3, Len(Me.Campo1) - (k + 2)))
Me.Campo1 = seq1 & seq2 & seq3
End If
End If
Next k
Um outro ponto: como eu faria para pesquisar qualquer tamanho de sequência? Eu fiz de um jeito para comparar de três em três letras. Mas como posso fazer para procurar qualquer que fosse a quantidade repetida, 3, 4, 5, etc., sem precisar colocar um monte de If/End If.
Agradeço a todos que puderem ajudar.
Gerson.