Jump to content


Photo

Converter Asc Para Chr


  • Faça o login para participar
3 replies to this topic

#1 Juliano Gomes

Juliano Gomes

    Novato no fórum

  • Usuários
  • 9 posts
  • Sexo:Não informado

Posted 25/12/2006, 21:56

caros colegas, na função abaixo eu consigo converter qualquer caracter para seu código ASC
Function Ansi(valor)
For i = 1 To Len(Valor)
	Str = Asc(Mid(Valor, i, 1))
	If Len(Str) = 1 Then Str = Str
	Response.Write Str
Next
End Function

se eu der um <%Response.Write(Ansi("A"))%> o resultado seria: 65
se eu der um <%Response.Write(Ansi("B"))%> o resultado seria: 66
se eu desse um <%Response.Write(Ansi("AB"))%> o resultado seria: 6566

para eu reverter isso nao bastaria trocar o
Str = Asc(Mid(Valor, i, 1)) por Str = Chr(Mid(Valor, i, 1)) ???

olhem a minha tentativa frustrada de reverter o codigo gerado na função Ansi :

Function Char(valor)
For i = 1 To Len(Valor)
	Str = Chr(Mid(Valor, i, 1))
	If Len(Str) = 1 Then Str = Str
	Response.Write Str
Next
End Function

o resultado que eu gostaria de obter num <%Response.Write(Char("65"))%> seria: A
porem obtenho o caracter: 

alguem poderia me ajudar com isso?

um forte abraço!

#2 siola

siola

    Usuário

  • Usuários
  • 894 posts
  • Sexo:Masculino
  • Localidade:SBC - SP
  • Interesses:ASP, .NET, javascript

Posted 26/12/2006, 10:32

Repare que na primeira função ele faz um loop que pega 1 caracter somente, o que funciona para a primeira conversão.

Já para a segunda conversão não funciona, pois a letra A por exemplo é representada por "65", que são 2 caracteres.
Assim, a sua função está quebrando a letra A em 2 partes e não está retornando como você quer.

Entendeu?

[]s

#3 Juliano Gomes

Juliano Gomes

    Novato no fórum

  • Usuários
  • 9 posts
  • Sexo:Não informado

Posted 26/12/2006, 13:16

sim, só que se eu trocar :

Str = Chr(Mid(Valor, i, 1)) If Len(Str) = 1 Then Str = Str

por

Str = Chr(Mid(Valor, i, 2)) If Len(Str) = 2 Then Str = Str

e der um <%Response.Write(Char("979899"))%>

olha o resultado: aObYc


se voce puder me dar uma mao com isso fico grato.

um forte abraço

#4 siola

siola

    Usuário

  • Usuários
  • 894 posts
  • Sexo:Masculino
  • Localidade:SBC - SP
  • Interesses:ASP, .NET, javascript

Posted 26/12/2006, 14:33

Function Char(valor)
For i = 1 To Len(Valor)/2
	Str = Chr(Mid(Valor, i, 2))
	Response.Write Str
Next
End Function

Mas isso dai não vai funcionar direito ok? Porque tem os caracteres que são representados por 1 numero, outros por 3.

O melhor seria se cada grupo de numeros viesse separado por um espaço para você poder separa-los.

[]s




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq