Ir para conteúdo

POWERED BY:

Arquivado

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

Faccruz

[Resolvido] Troca de caracter

Recommended Posts

Bom dia!

Adaptei uma função que remove acentos para substituir senhas, com certos valores ela funciona, mas com um valor ela não substitui. alguem pode me ajudar?

 

 

a função

 

Public Function TrocaCarac(ByVal Senha As String) As String
		Dim schar As String
		Dim pos As Integer
		Dim NomeSemAcento As String
		Dim i As Integer

		schar = ""
		NomeSemAcento = ""

		For i = 1 To Len(Senha)
			schar = Mid(Senha, i, 1)

			pos = InStr("8Pg~l-ÄÜó!", schar)

			If (pos <> 0) Then
				schar = Mid("1234567890", pos, 1)
			End If

			NomeSemAcento = NomeSemAcento + schar
		Next

		TrocaCarac = NomeSemAcento
	End Function

 

O valor que estou testando é 4646 (no bd está ~-~-) ela só está substituindo o ~ pelo 4 (correto) mas o - nào está substituindo pelo 6. Isso acontece para todas senhas que tem - nelas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia!

Adaptei uma função que remove acentos para substituir senhas, com certos valores ela funciona, mas com um valor ela não substitui. alguem pode me ajudar?

 

 

a função

 

Public Function TrocaCarac(ByVal Senha As String) As String
		Dim schar As String
		Dim pos As Integer
		Dim NomeSemAcento As String
		Dim i As Integer

		schar = ""
		NomeSemAcento = ""

		For i = 1 To Len(Senha)
			schar = Mid(Senha, i, 1)

			pos = InStr("8Pg~l-ÄÜó!", schar)

			If (pos <> 0) Then
				schar = Mid("1234567890", pos, 1)
			End If

			NomeSemAcento = NomeSemAcento + schar
		Next

		TrocaCarac = NomeSemAcento
	End Function

 

O valor que estou testando é 4646 (no bd está ~-~-) ela só está substituindo o ~ pelo 4 (correto) mas o - nào está substituindo pelo 6. Isso acontece para todas senhas que tem - nelas.

resolvi dessa forma, por incrivel que pareça o simbolo "-" esta com dois ASCii (o 173 e 150) por esse motivo tive que criar o if sChar = Chr(173)...

 

Public Function TrocaCarac(ByVal Senha As String) As String
		Dim sChar As String
		Dim pos As Integer
		Dim Descript As String
		Dim i As Integer

		sChar = ""
		Descript = ""

		For i = 1 To Len(Senha)
			sChar = Mid(Senha, i, 1)

			If sChar = Chr(173) Then
				pos = InStr("8Pg~|" & Chr(173) & "ÄÜó!", sChar)
			ElseIf sChar = Chr(150) Then
				pos = InStr("8Pg~|" & Chr(150) & "ÄÜó!", sChar)
			Else
				pos = InStr("8Pg~|" & Chr(173) & "ÄÜó!", sChar)
			End If

			If (pos <> 0) Then
				sChar = Mid("1234567890", pos, 1)
			End If

			Descript = Descript + sChar
		Next

		TrocaCarac = Descript
	End Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hmm, estranho.

Nesse site tem todos os ascii, e o 150 e 173 são diferentes, visualmente.

Mas se você copiar e colar os dois são iguais.

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.