Ir para conteúdo

Arquivado

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

peshe

Convertendo texto

Recommended Posts

Ortolani, desculpa se te ofendi kra... Não era minha intenção !

Vou deixar claro porque falei isso. Ele ta querento colocar uma tag em cada variavel, tenho certeza que ele não vai usar só "a" e "b", se ele fizer um codigo que só entenda a e b ele vai ficar limitado, por isso é melhor fazer uma função.

 

Mais uma vez desculpas. Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, se você sempre for jogar o resultado no text2.txt pode usar este codigo:

 

Function Criptografa(texto As String) As String	 codigos = Array("•_", "•••")	 final = ""	 For x = 1 To Len(texto)		 letra = LCase(Mid(texto, x, 1)) 'pega uma letra e deixo-a em minúsculo		 final = final & codigos(Asc(letra) - 97)	 Next x	 	 text2.txt = final	 End Function

Esse é o codigo do Luizgrs, só que ele só não estava passando os resultados.

Eu não tenho VB aqui, testei com o editor VBA.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eita, agora ta dando um erro "Object required" e a linha "Text2.Text = final" do módulo está em amarelo...Que é isso?té mais

Compartilhar este post


Link para o post
Compartilhar em outros sites

Function Criptografa(texto As String) As String	 codigos = Array("•_", "•••")	 final = ""	 For x = 1 To Len(texto)		 letra = LCase(Mid(texto, x, 1)) 'pega uma letra e deixo-a em minúsculo		 final = final & codigos(Asc(letra) - 97)	 Next x	 	 form1.text2.txt = final ' <--- coloca o nome do form na frente !	 End Function

Pronto !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, o erro sumiu, mas não aparece nada no Text2... NO botão eu puis:Private Sub Command1_Click()Text2.Text = Criptografa(Text1.Text)End SubTé certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Private Sub Command1_Click()Criptografa(Text1.Text)End Sub
Ta dificil hein Imagem Postada

 

Mas uma hora vai !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só uma pergunta:Numeros, espaços, e caracteres especiais não funcionam por que?Da um erro "Script out of range"...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Concertando a função:

Function Criptografa(texto As String) As String	 codigos = Array("•_", "•••") 'a, b	 final = ""	 For x = 1 To Len(texto)		 letra = LCase(Mid(texto, x, 1)) 'pega uma letra e deixo-a em minúsculo		 final = final & codigos(Asc(letra) - 97)	 Next x	Criptografa = final	 End Function
E você usa assim:

Text1.text = Criptografa(texto)
É como eu disse esse sistema está feito só para as letra a e b.

Ali no array só estão as "letras" a e b, ou seja para o resto funcionar você vai ter que acrescentar os código das respectiva letras.

 

Daí como eu disse de "a" a "z" você só precisa colocar os respectivos códigos na matriz. Mas para outras letra você terá que fazer uma verificação - utlizando a função Asc - do código ASCII.

Pois a expressão:

Asc(letra) - 97
Não irá funcionar com ela.

 

Você também pode fazer um array com 255 posições - uma para cada código ASCII - daí ao invés de utilizar uma expressão matemática você usa só a função Asc.

 

Aqui tem uma tabela para você dar uma olhada:

http://paginas.terra.com.br/lazer/luizgrs/...aascii.html.txt (salvar destino como)

Os 32 primeiros códigos não caracteres de texto. Por isso eu tirei da lista.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hmmm...

Olha só um outro jeito de você fazer é assim:

Function Criptografa(texto As String) As String	 letras = Array("a", "b")	 codigos = Array("•_", "•••")	 For x = 0 To UBound(letras)		  texto = Replace(texto, letras(x), codigos(x))	 Next	 Criptografa = textoEnd Function
Assim fica mais fácil para fazer ^^.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da um Syntax Error e a linha "texto = replace(texto,letras(x),codigos(x)" esta em vermelho...Se eu por no Array das "letras" um espaço ou números , dará certo? E tem que seguir uma ordem certa ou não? Tipo pode por a, b, c, 1, 2, 3, [espaço]?té mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faltou eu colocar um parentes aí no final:

texto = replace(texto,letras(x),codigos(x))

No array de letras você pode fazer a ordem que quiser desde que no array de códigos você siga a mesma ordem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E laiá eu to mal de digitação esses dias ¬¬ é ubound e não ubnoud:

 

Function Criptografa(texto As String) As String	 letras = Array("a", "b")	 codigos = Array("•_", "•••")	 For x = 0 To UBound(letras)		  texto = Replace(texto, letras(x), codigos(x))	 Next	 Criptografa = textoEnd Function
Eu testei aqui e funcionou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, não deu não, o text2 fica em branco. Eu puis isso no botão:

 

Criptografa (Text1.Text)

Está certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Putz, nem vi^^Mas da um Compile error:ByRef argument type mismatche a palavra texto de dentro do parenteses no botão está selecionada e "Private Sub Command1_Click()" está em amarelo... ja tinha visto esse erro em um outro programa, mas não lembro o que fiz...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O tipo da variavel texto tem que ser string. Como está declarado na função.Tenta utilizar a função Cstr() para converter a variavel texto para o tipo string.

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.