NAO CONSIGO ALTERAR FUNCAO DE TEXTO

JWCELYO 08/07/2010 11:42:47
#346841
pessoal tenho funçao de texto que peguei aqui no VBMania porem essa função remover todos os caracter específicos de uma string porem eu queria que remove-se apenas os entre os 20 primeiros caracter alguém sabe como alterar éla?

Public Const UM = 1


Public Function TiraAcentos(Texto As String)
On Error GoTo Trata_erro
[ô]necessito lcase (texto)
Dim I As Integer, J As Integer [ô]contadores pra percorer a matriz
Dim V(21, 1) As String * 1 [ô]matriz de acentos e suas respectivas equivalentes
Dim a(10) As String [ô]vetor de caracteres invalidos
Dim TEMP As String, TMP As String [ô]vars temp que guardam os valores
Dim k As Integer [ô]contador pra percorrer a tmp
Dim TAM As Integer [ô]tamanho do texto
Dim TMPFINAL As String [ô]texto montagem, volta do procedimento
Dim CONT As Integer [ô]contador do vetor A


TEMP = Texto
TAM = Len(TEMP)
TMPFINAL = vbNullString

V(0, 0) = [Ô]ö[Ô]
V(0, 1) = [Ô]ö[Ô]
V(1, 0) = [Ô]ö[Ô]
V(1, 1) = [Ô]ö[Ô]
V(2, 0) = [Ô]ö[Ô]
V(2, 1) = [Ô]ö[Ô]
V(3, 0) = [Ô]ö[Ô]
V(3, 1) = [Ô]ö[Ô]
V(4, 0) = [Ô]ö[Ô]
V(4, 1) = [Ô]ö[Ô]

V(5, 0) = [Ô]ö[Ô]
V(5, 1) = [Ô]ö[Ô]
V(6, 0) = [Ô]ö[Ô]
V(6, 1) = [Ô]ö[Ô]
V(7, 0) = [Ô]ö[Ô]
V(7, 1) = [Ô]ö[Ô]
V(8, 0) = [Ô]ö[Ô]
V(8, 1) = [Ô]ö[Ô]

V(9, 0) = [Ô]ö[Ô]
V(9, 1) = [Ô]ö[Ô]
V(10, 0) = [Ô]ö[Ô]
V(10, 1) = [Ô]ö[Ô]
V(11, 0) = [Ô]ö[Ô]
V(11, 1) = [Ô]ö[Ô]
V(12, 0) = [Ô]ö[Ô]
V(12, 1) = [Ô]ö[Ô]

V(13, 0) = [Ô]ö[Ô]
V(13, 1) = [Ô]ö[Ô]
V(14, 0) = [Ô]ö[Ô]
V(14, 1) = [Ô]ö[Ô]
V(15, 0) = [Ô]ö[Ô]
V(15, 1) = [Ô]ö[Ô]
V(16, 0) = [Ô]ö[Ô]
V(16, 1) = [Ô]ö[Ô]

V(17, 0) = [Ô]ö[Ô]
V(17, 1) = [Ô]ö[Ô]
V(18, 0) = [Ô]ö[Ô]
V(18, 1) = [Ô]ö[Ô]
V(19, 0) = [Ô]ö[Ô]
V(19, 1) = [Ô]ö[Ô]
V(20, 0) = [Ô]ö[Ô]
V(20, 1) = [Ô]ö[Ô]
V(21, 0) = [Ô]ö[Ô]
V(21, 1) = [Ô]ö[Ô]


a(0) = [Ô]0[Ô]
a(1) = [Ô]1[Ô]
a(2) = [Ô]2[Ô]
a(3) = [Ô]3[Ô]
a(4) = [Ô]4[Ô]
a(5) = [Ô]5[Ô]
a(6) = [Ô]6[Ô]
a(7) = [Ô]7[Ô]
a(8) = [Ô]8[Ô]
a(9) = [Ô]9[Ô]
a(10) = [Ô].[Ô]





For I = 0 To (TAM - UM)
TMP = Mid(Left(TEMP, I + UM), I + UM, TAM)
For J = 0 To 21
For k = 0 To UM
If TMP = V(J, k) Then
TMP = V(J, UM)
End If
If TMP = [Ô]ç[Ô] Then [ô]============================================
TMP = [Ô]c[Ô] [ô] Implementação de Stop Words caso ç --> c =
End If
For CONT = 0 To 10
If TMP = a(CONT) Then
TMP = [Ô][Ô]
End If
Next


Next
Next
TMPFINAL = TMPFINAL & TMP
Next

TiraAcentos = TMPFINAL
Exit Function
Trata_erro:
MsgBox [Ô]Erro n° [Ô] & Err.Number & vbCrLf & [Ô]Erro:[Ô] & Err.Description
Err.Clear
Resume Next
End Function



MARCELO.TREZE 08/07/2010 11:45:27
#346842
ué tentou mudar esta linha

de:

TAM = Len(TEMP)

para:

TAM = 20

JWCELYO 08/07/2010 11:57:48
#346844
sim mudei ai ele remover vinte caracter da direita para esquerda. ou seja remove sem valida remove todos os tipos.
sendo de que eu quero que ele remova da esquerda para direita com apenas específicos na função que é os numeros mais pontinho
EDERMIR 08/07/2010 13:33:44
#346857
Resposta escolhida
Vamos propor um pequeno [Ô]CAMBALACHO[Ô]:

Wcaracteres = 20
Wfrasetoda = <A SUA STRING>
if len(Wfrasetoda) < Wcaracteres then
Wfrasetoda = Wfrasetoda & space(Wcaracteres)
endif
Wfrase1 = left(Wfrasetoda,Wcaracteres)
Wfrase2 = right (Wfrasetoda,len(Wfrasetoda)-Wcaracteres)

Wacentos = [Ô]ÁÀÂÃÄéÈÊËÍÌÎÏÓÒÔÕÖÚÙÛÜÇ[Ô]
Wletras = [Ô]AAAAAEEEEIIIIOOOOOUUUUC[Ô]
for Wx = 1 to len(Wacentos)
Wfrase1 = replace(Wfrase1,mid(ucase(Wacentos),Wx,1),mid(ucase(Wletras),Wx,1)) [ô]TROCA AS MAIÚSCULAS
Wfrase1 = replace(Wfrase1,mid(lcase(Wacentos),Wx,1),mid(lcase(Wletras),Wx,1)) [ô]TROCA AS MINÚSCULAS
next Wx

Wfrasefinal = Wfrase1 & Wfrase2
JWCELYO 08/07/2010 13:57:22
#346863
valeu mesmo MARCELO-TREZE e EDERMIR
o exemplo do EDERMIR funcionou perfeitamente porem acho um jeito melhor aqui.
mas valeu mesmo
Tópico encerrado , respostas não são mais permitidas