TRATAR TEXTBOX STRING

USUARIO.EXCLUIDOS 06/06/2007 15:40:01
#220060
Pessoal.sera que alguem poderia me dar uma ajudinha?

em um textbox tenho o seguinte valor:

text1 = "2 (55) 9870-8299" com espaço e tudo mais


queria que na text2 fosse igual a text1 porem:
s/ 1º caracter, ou seja, o 2
s/ espaço e s/ parenteses


ficando assim: text2 = 5598708299

alguem ai?






USUARIO.EXCLUIDOS 06/06/2007 15:44:44
#220061
Faço o seguinte no lost focus do textbox1

dim text2 as string
text2 = mid(2,len(textbo1)
Text2 = replace(text2,"(","")
Text2 = replace(text2,")","")
Text2 = replace(text2,"-","")
Text2 = replace(text2," ","")

textbox2 = text2

Não testei, mas se não for isso é quase.


USUARIO.EXCLUIDOS 06/06/2007 15:52:47
#220062
obrigado pela ajuda Marcos...

mas ele funcionou só para os parenteses

pois ele nao tirou o 1º caracter e nem os espaços

sera quem nao teria como me ajudar mais um pouco
SILVERDRAGON 06/06/2007 15:53:04
#220063
Acho q é isso marcosa..


Dim esq, dir, esp, tra As String

esq = Replace(Me.Text1, "(", vbNullString)

dir = Replace(esq, ")", vbNullString)

esp = Replace(dir, " ", vbNullString)

tra = Replace(esp, "-", vbNullString)

Me.Text2 = tra

SILVERDRAGON 06/06/2007 15:53:27
#220065
Acho q é isso marcosa..


Dim esq, dir, esp, tra As String

esq = Replace(Me.Text1, "(", vbNullString)

dir = Replace(esq, ")", vbNullString)

esp = Replace(dir, " ", vbNullString)

tra = Replace(esp, "-", vbNullString)

Me.Text2 = tra

SILVERDRAGON 06/06/2007 15:55:49
#220066
Aqui um exemplo q fiz pra vc...




USUARIO.EXCLUIDOS 06/06/2007 16:01:18
#220068
heee.. funcionou...

mas só faltou Silver o primeiro caracter

eu nao queria que ele aparecesse

como faz isso?

é algo com len neh??

ALMARTI 06/06/2007 16:04:29
#220069
A resposta do Marcos esta correta. Para que possa estudar, segue um exemplo usando uma função onde você possa entrar com uma string e um ponto de indicação de inicio de leitura, por exemplo, a partir do segundo caracter, e o retorno será apenas os numeros, independente do tipo de caracter que existir. No caso o replace deverá levar em conta que podem existir outros caracteres, como por exemplo o "-"

Private Function ReescreveSoNumeros(strTexto As String, iApartirDoCaracter As Integer) As String

Dim i As Integer

ReescreveSoNumeros = ""

For i = iApartirDoCaracter To Len(strTexto)
If Asc(Mid(strTexto, i, 1)) > 45 And Asc(Mid(strTexto, i, 1)) < 58 Then
ReescreveSoNumeros = ReescreveSoNumeros + Mid(strTexto, i, 1)
End If
Next

Exit Function

End Function


Para uso

Private Sub Command1_Click()
Text2.Text = ReescreveSoNumeros(Text1.Text, 2)
End Sub


USUARIO.EXCLUIDOS 06/06/2007 16:05:12
#220070
Resposta escolhida
text2 = mid(text1,4,2) & mid(text1,8 4) & midtext1,13,4)

Olá isto funciona, é simples, prático e e se resolve em uma linha!
boa sorte e ótimo final de semana!


E se alguem te ajudou não se esqueça... Pontue!
SILVERDRAGON 06/06/2007 16:08:37
#220072
Fa isso linda:


Dim esq, dir, esp, tra As String

esq = Replace(Me.Text1, "(", vbNullString)

dir = Replace(esq, ")", vbNullString)

esp = Replace(dir, " ", vbNullString)

tra = Replace(esp, "-", vbNullString)

Me.Text2 = Mid(tra, 2) 'Mudei aqui

ALMARTI 06/06/2007 16:12:24
#220075
Mais uma vez, o uso do replace é indicado para quando se sabe exatamente o caracter a ser substituido. Neste caso, toda vez que surgir um carater novo, seja [, {, . ou o que for, o código tera que ser readaptado. Repnese e imagine que a situação pode mudar externamente e o seu código deve estar preparado internamente.
Página 1 de 2 [14 registro(s)]
Tópico encerrado , respostas não são mais permitidas