Título: Problema en Visual Basic -Net (Al remplazar una palabra)
Publicado por: Akise en 8 Junio 2013, 19:51 pm
¡Hola!, Bueno mi problema es el siguiente, intento hacer un "encriptador". Lo que uso es la función remplace, para que si X tiene un valor, lo remplace por el valor de Y. El código es el siguiente; Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click '# ENVÍA LO ESCRITO A LA CAJA DE TEXTO 2. (PARA LUEGO TRANSOFRMARLO EN LA OTRA CAJA Y '# NO EN LA PRIMERA, (SE EXPLICA MÁS ADELANTE EL SIGUIENTE CÓDIGO) TextBox2.Text = TextBox1.Text '######################################################################################## '# LO QUE HACE TextBox2.Text = Remplace(TextBox2.Text, "a", "i") será que lo escrito ### '# en la caja número 2, el caracter en las primeras comillas dobles se transformará ##### '# en la letra escrita en las segundas comillas dobles, en este caso la a en la i. ###### '# de esta forma el texto se cifrará. ################################################ '######################################################################################## '# ABECEDARIO ESPAÑOL MINÚSCULAS TextBox2.Text = Replace(TextBox2.Text, "a", "q") TextBox2.Text = Replace(TextBox2.Text, "á", "w") TextBox2.Text = Replace(TextBox2.Text, "b", "e") TextBox2.Text = Replace(TextBox2.Text, "c", "r") TextBox2.Text = Replace(TextBox2.Text, "d", "t") TextBox2.Text = Replace(TextBox2.Text, "e", "y") TextBox2.Text = Replace(TextBox2.Text, "é", "u") TextBox2.Text = Replace(TextBox2.Text, "f", "i") TextBox2.Text = Replace(TextBox2.Text, "g", "o") TextBox2.Text = Replace(TextBox2.Text, "h", "p") TextBox2.Text = Replace(TextBox2.Text, "i", "a") TextBox2.Text = Replace(TextBox2.Text, "í", "s") TextBox2.Text = Replace(TextBox2.Text, "j", "d") TextBox2.Text = Replace(TextBox2.Text, "k", "f") TextBox2.Text = Replace(TextBox2.Text, "l", "g") TextBox2.Text = Replace(TextBox2.Text, "m", "h") TextBox2.Text = Replace(TextBox2.Text, "n", "i") TextBox2.Text = Replace(TextBox2.Text, "ñ", "j") TextBox2.Text = Replace(TextBox2.Text, "o", "k") TextBox2.Text = Replace(TextBox2.Text, "ó", "l") TextBox2.Text = Replace(TextBox2.Text, "p", "ñ") TextBox2.Text = Replace(TextBox2.Text, "q", "z") TextBox2.Text = Replace(TextBox2.Text, "r", "x") TextBox2.Text = Replace(TextBox2.Text, "s", "c") TextBox2.Text = Replace(TextBox2.Text, "t", "v") TextBox2.Text = Replace(TextBox2.Text, "u", "b") TextBox2.Text = Replace(TextBox2.Text, "ú", "n") TextBox2.Text = Replace(TextBox2.Text, "ü", "m") TextBox2.Text = Replace(TextBox2.Text, "v", "&q") TextBox2.Text = Replace(TextBox2.Text, "w", "&w") TextBox2.Text = Replace(TextBox2.Text, "x", "&r") TextBox2.Text = Replace(TextBox2.Text, "y", "&e") TextBox2.Text = Replace(TextBox2.Text, "z", "&t") '# ABECEDARIO ESPAÑOL MAYÚSCULAS. TextBox2.Text = Replace(TextBox2.Text, "A", "&y") TextBox2.Text = Replace(TextBox2.Text, "Á", "&u") TextBox2.Text = Replace(TextBox2.Text, "B", "&i") TextBox2.Text = Replace(TextBox2.Text, "C", "&o") TextBox2.Text = Replace(TextBox2.Text, "D", "&p") TextBox2.Text = Replace(TextBox2.Text, "E", "&a") TextBox2.Text = Replace(TextBox2.Text, "É", "&s") TextBox2.Text = Replace(TextBox2.Text, "F", "&d") TextBox2.Text = Replace(TextBox2.Text, "G", "&f") TextBox2.Text = Replace(TextBox2.Text, "H", "&g") TextBox2.Text = Replace(TextBox2.Text, "I", "&h") TextBox2.Text = Replace(TextBox2.Text, "Í", "&j") TextBox2.Text = Replace(TextBox2.Text, "J", "&k") TextBox2.Text = Replace(TextBox2.Text, "K", "&l") TextBox2.Text = Replace(TextBox2.Text, "L", "&ñ") TextBox2.Text = Replace(TextBox2.Text, "M", "&z") TextBox2.Text = Replace(TextBox2.Text, "N", "&x") TextBox2.Text = Replace(TextBox2.Text, "Ñ", "&c") TextBox2.Text = Replace(TextBox2.Text, "O", "&v") TextBox2.Text = Replace(TextBox2.Text, "Ó", "&b") TextBox2.Text = Replace(TextBox2.Text, "P", "&n") TextBox2.Text = Replace(TextBox2.Text, "Q", "&m") TextBox2.Text = Replace(TextBox2.Text, "R", "%q") TextBox2.Text = Replace(TextBox2.Text, "S", "%w") TextBox2.Text = Replace(TextBox2.Text, "T", "%e") TextBox2.Text = Replace(TextBox2.Text, "U", "%r") TextBox2.Text = Replace(TextBox2.Text, "Ú", "%t") TextBox2.Text = Replace(TextBox2.Text, "Z", "%y") '# NÚMEROS TextBox2.Text = Replace(TextBox2.Text, "0", "%u") TextBox2.Text = Replace(TextBox2.Text, "1", "%i") TextBox2.Text = Replace(TextBox2.Text, "2", "%o") TextBox2.Text = Replace(TextBox2.Text, "3", "%p") TextBox2.Text = Replace(TextBox2.Text, "4", "%a") TextBox2.Text = Replace(TextBox2.Text, "5", "%s") TextBox2.Text = Replace(TextBox2.Text, "6", "%d") TextBox2.Text = Replace(TextBox2.Text, "7", "%f") TextBox2.Text = Replace(TextBox2.Text, "8", "%g") TextBox2.Text = Replace(TextBox2.Text, "9", "%h") '# OTROS CARACTERES TextBox2.Text = Replace(TextBox2.Text, ":", "@q") TextBox2.Text = Replace(TextBox2.Text, ";", "@w") TextBox2.Text = Replace(TextBox2.Text, ".", "@e") TextBox2.Text = Replace(TextBox2.Text, "(", "@r") TextBox2.Text = Replace(TextBox2.Text, ")", "@t") TextBox2.Text = Replace(TextBox2.Text, "¿", "@y") TextBox2.Text = Replace(TextBox2.Text, "?", "@u") TextBox2.Text = Replace(TextBox2.Text, "¡", "@i") TextBox2.Text = Replace(TextBox2.Text, "!", "@o") TextBox2.Text = Replace(TextBox2.Text, "@", "/p") TextBox2.Text = Replace(TextBox2.Text, "€", "/a") TextBox2.Text = Replace(TextBox2.Text, "$", "/s") TextBox2.Text = Replace(TextBox2.Text, "/", "(d") '# EXPRESIONES (SÍMBOLOS MATEMÁTICOS) TextBox2.Text = Replace(TextBox2.Text, "=", ")q") TextBox2.Text = Replace(TextBox2.Text, "*", ")w") TextBox2.Text = Replace(TextBox2.Text, "/", ")e") TextBox2.Text = Replace(TextBox2.Text, "+", ")r") TextBox2.Text = Replace(TextBox2.Text, "-", ")t") TextBox2.Text = Replace(TextBox2.Text, "^", ")y")
Al ejecutar el programa, por alguna razón que desconozco, si escribo una letra toma el valor de otra diferente a la que debería tomar, por ejemplo si escribo la letra 'a' el valor que toma es &t, pero &t es la letra z, entonces no entiendo cual es el problema, ni porque remplaza mal. ¿Alguien podría explicarme lo que sucede? Muchas gracias de antemano.
Título: Re: Problema en Visual Basic -Net (Al remplazar una palabra)
Publicado por: Novlucker en 8 Junio 2013, 19:56 pm
Así no va a funcionar. Lo que debes de hacer es recorrer cada una una de las letras del string, convertirla y concatenarla en una nueva variable.
Así como lo tienes, primero reemplazas a por q, luego q por z, y por último z por &t, por eso el resultado es que a se convierte en &t :P
Saludos
Título: Re: Problema en Visual Basic -Net (Al remplazar una palabra)
Publicado por: Akise en 8 Junio 2013, 19:59 pm
Así no va a funcionar. Lo que debes de hacer es recorrer cada una una de las letras del string, convertirla y concatenarla en una nueva variable.
Así como lo tienes, primero reemplazas a por q, luego q por z, por eso el resultado es que a se convierte en z :P
Saludos
Vale, lo segundo lo entendí, y vaya, que ágil la respuesta. ¡Muchas gracias!, el problema es que no entendí lo que debo hacer para solucionarlo.
Título: Re: Problema en Visual Basic -Net (Al remplazar una palabra)
Publicado por: Novlucker en 8 Junio 2013, 20:07 pm
Lo que debes de hacer, es armar un FOR que recorra el string, pero que vaya obteniendo de a una letra, para luego convertira, a esa letra convertida, la guardas en otra variable, y así vas convirtiendo una a una y concatenando en esa variable.
Saludos
Título: Re: Problema en Visual Basic -Net (Al remplazar una palabra)
Publicado por: Akise en 8 Junio 2013, 20:43 pm
Lo que debes de hacer, es armar un FOR que recorra el string, pero que vaya obteniendo de a una letra, para luego convertira, a esa letra convertida, la guardas en otra variable, y así vas convirtiendo una a una y concatenando en esa variable.
Saludos
Perdona mi ignorancia, pero sigo sin entenderlo... Más bien no entiendo como hacer un ciclo for que recorra el string, aunque entiendo que lo que tengo que hacer es separarlo por asi decirlo, para que al cifrar la a en q no encripte otra vez la q en z.
Título: Re: Problema en Visual Basic -Net (Al remplazar una palabra)
Publicado por: XresH en 8 Junio 2013, 21:37 pm
Usa la función Mid (http://msdn.microsoft.com/es-es/library/05e63829%28v=vs.80%29.aspx).
Saludos.
Título: Re: Problema en Visual Basic -Net (Al remplazar una palabra)
Publicado por: Eleкtro en 9 Junio 2013, 03:40 am
No creo que haga falta nada más que añadir a lo que te dijo Novlucker, hay miles de ejemplos en Google de como crear un Loop, ¿Has intentado buscar? Te hago un ejemplo de lo que te están diciendo que hagas: Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load MsgBox(Encrypt_text("¡ Hello world !")) ' Result: @i Hello world @o End Sub Public Shared Function Encrypt_text(ByVal str As String) As String Static Special_Characters As Char() = ":;-()¿?¡!@€$/".ToCharArray Static Special_Characters_Replacement() As String = _ {"@q", "@w", "@e", "@r", "@t", "@y", "@u", "@i", "@o", "@p", "@a", "@s", "@d"} ' : , ; , - , ( , ) , ¿ , ? , ¡ , ! , @ , € , $ , / Dim Temp_String As String = String.Empty Dim Replacement_Found As Boolean = False For Each character As Char In str ' Recorremos cada caracter de la variable str For x As Int32 = 0 To Special_Characters.Length - 1 ' recorremos cada caracter de nuestro array de caracteres If character = Special_Characters(x) Then ' si caracter de STR es igual a caracter de ARRAY... Replacement_Found = True Temp_String &= Special_Characters_Replacement(x) Exit For ' Salimos de la iteración para ahorrar tiempo End If Next If Not Replacement_Found Then Temp_String &= character Else Replacement_Found = False Next Return Temp_String End Function End Class
Saludos
Título: Re: Problema en Visual Basic -Net (Al remplazar una palabra)
Publicado por: Flamer en 9 Junio 2013, 03:54 am
no se como se obtiene el valor ASCII de una letra en net, yo solo uso vb6 pero en palabras te servirá...
has el ciclo for que llegue hasta el final del string
luego opten el valor ASCII de cada dígito ( o letra como le quieras llamar para que no te confundas) y suma le x numero y luego transformalo a letra otra vez y listo ya lo tienes cifrado
saludos Flamer
Título: Re: Problema en Visual Basic -Net (Al remplazar una palabra)
Publicado por: XresH en 9 Junio 2013, 04:09 am
Con Mid manejas los caracteres a tu antojo manejandolo bien, no precisas grandes lineas de codigo para hacerlo, buscá y en 5 o 6 líneas con un for haces todo.
No hay necesidad de colocar todos los caracteres porque vos los tenes definidos en una caja de texto, maneja los que tenes y listo para qué mas ?
Saludos.
Título: Re: Problema en Visual Basic -Net (Al remplazar una palabra)
Publicado por: 43H4FH44H45H4CH49H56H45H en 9 Junio 2013, 05:07 am
Tan simple como esto: Dim sCadena As String = "123?%" For Each cCaracter In sCadena MsgBox(Asc(cCaracter)) Next
Luego sumar, almacenar y listo :silbar:
Título: Re: Problema en Visual Basic -Net (Al remplazar una palabra)
Publicado por: Eleкtro en 9 Junio 2013, 07:30 am
@ XResh La verdad es que no quería comentar nada acerca de "Mid" para no molestarte y para no desviar el tema, pero me he fijado en tu insistencia sobre la función Mid y lo cierto es que no me gusta ver que se promueva el uso de Mid cuando estamos en .NET, Lo digo porque "Mid" al igual que "left" "right" son funciones de VisualBasic 6 (usables en .NET), ...¿pero para que usarlas si tenemos clases y métodos de todo tipo que son obviamente mucho más rápidos y eficaces que los de VB6? Un saludo!
@ AkiseSe puede apreciar cláramente que en tu código quieres definir tus própios caracteres cifrados (O al menos eso ha dado a entender), de ahí mi código algo largo, pero si prefieres algo reálmente corto puedes usar esto: #Region " Encrypt-Decrypt String " ' [ Encrypt-Decrypt String Function ] ' ' // By Elektro H@cker ' ' Examples : ' ' MsgBox(Encrypt_Decrypt_String("Test")) ' Result: «šŒ‹ ' MsgBox(Encrypt_Decrypt_String("«šŒ‹")) ' Result: Hello Public Function Encrypt_Decrypt_String(ByVal Input As String) As String Dim Output As String = String.Empty For Each Ch As Char In Input Output &= Asc(Ch) ' Application.DoEvents() Next Return Output End Function #End Region
EDITO:Si prefieres la versión larga donde puedes definir perféctamente los caracteres que tu quieras, aquí tienes: #Region " Encrypt-Decrypt Text " ' [ Encrypt-Decrypt Text Function ] ' ' // By Elektro H@cker ' ' Examples : ' ' MsgBox(Encrypt_Text("Hello world")) ' Result: à`336 L6ë3m ' MsgBox(Decrypt_Text("à`336 L6ë3m")) ' Result: Hello world ' MsgBox(Encrypt_Text("¡ Hello world !", True)) ' Result: = <ÁÍÍÀ cÀ,Í3 Ï ' MsgBox(Decrypt_Text("= <ÁÍÍÀ cÀ,Í3 Ï", True)) ' Result: ¡ Hello world ! Public Shared Function Encrypt_Text(ByVal str As String, _ Optional ByVal Include_Special_Characters As Boolean = False) As String Static Characters As Char() Static Replacements As Char() If Include_Special_Characters Then Characters = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789áéíóúÁÉÍÓÚàèìòùÀÈÌÒÙäëïöüÄËÏÖÜçǺª<>¡!¿?()[]{}/\|·.:;,-+=_~¬^'`´¨*$%&€#@""".ToCharArray Replacements = {"h", "ó", "Ó", "3", "Á", "è", "A", "^", "ö", "~", "O", "Í", "€", "q", "ú", "À", "Ç", "È", ",", "ì", "i", "ï", "ò", "c", "0", "ñ", "4", "l", "Ü", "ª", "¬", "S", "&", "?", "<", ":", "T", "*", "e", ".", "R", "É", "D", "7", "9", "Ú", "n", "¿", "L", "m", "¨", "Ë", "]", "Ä", "Q", "w", "V", "'", "G", "K", "é", "v", "ù", "}", "P", "E", "X", "+", "í", "´", "$", "{", "_", "Ñ", "u", "ë", "H", "g", "d", "x", "8", "/", "ä", "#", "|", "-", "1", "M", "Ò", "o", ")", "N", "Y", "á", "Ù", "Ì", "%", "ç", """", "a", "=", "Ï", "z", "Ö", ">", ";", "2", "6", "B", "y", "b", "`", "s", "5", "t", "[", "(", "à", "ü", "!", "¡", "f", "W", "k", "r", "U", "J", "·", "Z", "F", "C", "º", "I", "@", "p", "j"} Else Characters = _ "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789áéíóúÁÉÍÓÚàèìòùÀÈÌÒÙäëïöüÄËÏÖÜçǺª¡¿·¬`´¨€".ToCharArray ' Removed chars for better improvement in code encryptation: = & + - ^ " % ' < > ( ) { } . $ [ ] ; @ ! ? ~ : / \ | * # , _ Replacements = _ {"u", "Ñ", "T", "m", "`", "P", "Ç", "Z", "h", "x", "á", "3", "¬", "R", "ª", "6", "ò", "N", "ë", "Ì", "g", "ö", "I", "L", "a", "À", "·", "V", "5", "Ë", "Ù", "´", "Ö", "J", "à", "¡", "n", "4", "È", "j", "ç", "b", "c", "y", "E", "ù", "Ó", "f", "º", "Q", "q", "G", "e", "B", "0", "€", "9", "o", "ì", "O", "8", "¿", "r", "v", "ó", "2", "Ï", "1", "¨", "i", "Á", "D", "t", "Í", "k", "Ú", "C", "ñ", "Ä", "S", "A", "é", "7", "Ü", "K", "z", "í", "è", "Y", "ü", "F", "s", "p", "X", "U", "Ò", "l", "É", "ú", "d", "ï", "M", "W", "H", "ä", "w"} ' a, b, c, d, e, f, g, h, i, j, k, l, m, n, ñ, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, Ñ, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, á, é, í, ó, ú, Á, É, Í, Ó, Ú, à, è, ì, ò, ù, À, È, Ì, Ò, Ù, ä, ë, ï, ö, ü, Ä, Ë, Ï, Ö, Ü, ç, Ç, º, ª, ¡, ¿, ·, ¬, `, ´, ¨, € End If Dim Temp_String As String = String.Empty Dim Replacement_Found As Boolean = False For Each character As Char In str For x As Int32 = 0 To Characters.Length - 1 If character = Characters(x) Then Replacement_Found = True Temp_String &= Replacements(x) Exit For End If Next If Not Replacement_Found Then Temp_String &= character Else Replacement_Found = False Application.DoEvents() Next Return Temp_String End Function Public Shared Function Decrypt_Text(ByVal str As String, _ Optional ByVal Include_Special_Characters As Boolean = False) As String Static Characters As Char() Static Replacements As Char() If Include_Special_Characters Then Characters = {"h", "ó", "Ó", "3", "Á", "è", "A", "^", "ö", "~", "O", "Í", "€", "q", "ú", "À", "Ç", "È", ",", "ì", "i", "ï", "ò", "c", "0", "ñ", "4", "l", "Ü", "ª", "¬", "S", "&", "?", "<", ":", "T", "*", "e", ".", "R", "É", "D", "7", "9", "Ú", "n", "¿", "L", "m", "¨", "Ë", "]", "Ä", "Q", "w", "V", "'", "G", "K", "é", "v", "ù", "}", "P", "E", "X", "+", "í", "´", "$", "{", "_", "Ñ", "u", "ë", "H", "g", "d", "x", "8", "/", "ä", "#", "|", "-", "1", "M", "Ò", "o", ")", "N", "Y", "á", "Ù", "Ì", "%", "ç", """", "a", "=", "Ï", "z", "Ö", ">", ";", "2", "6", "B", "y", "b", "`", "s", "5", "t", "[", "(", "à", "ü", "!", "¡", "f", "W", "k", "r", "U", "J", "·", "Z", "F", "C", "º", "I", "@", "p", "j"} Replacements = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789áéíóúÁÉÍÓÚàèìòùÀÈÌÒÙäëïöüÄËÏÖÜçǺª<>¡!¿?()[]{}/\|·.:;,-+=_~¬^'`´¨*$%&€#@""".ToCharArray Else Characters = _ {"u", "Ñ", "T", "m", "`", "P", "Ç", "Z", "h", "x", "á", "3", "¬", "R", "ª", "6", "ò", "N", "ë", "Ì", "g", "ö", "I", "L", "a", "À", "·", "V", "5", "Ë", "Ù", "´", "Ö", "J", "à", "¡", "n", "4", "È", "j", "ç", "b", "c", "y", "E", "ù", "Ó", "f", "º", "Q", "q", "G", "e", "B", "0", "€", "9", "o", "ì", "O", "8", "¿", "r", "v", "ó", "2", "Ï", "1", "¨", "i", "Á", "D", "t", "Í", "k", "Ú", "C", "ñ", "Ä", "S", "A", "é", "7", "Ü", "K", "z", "í", "è", "Y", "ü", "F", "s", "p", "X", "U", "Ò", "l", "É", "ú", "d", "ï", "M", "W", "H", "ä", "w"} ' a, b, c, d, e, f, g, h, i, j, k, l, m, n, ñ, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, Ñ, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, á, é, í, ó, ú, Á, É, Í, Ó, Ú, à, è, ì, ò, ù, À, È, Ì, Ò, Ù, ä, ë, ï, ö, ü, Ä, Ë, Ï, Ö, Ü, ç, Ç, º, ª, ¡, ¿, ·, ¬, `, ´, ¨, € Replacements = _ "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789áéíóúÁÉÍÓÚàèìòùÀÈÌÒÙäëïöüÄËÏÖÜçǺª¡¿·¬`´¨€".ToCharArray ' Removed chars for better improvement in code encryptation: = & + - ^ " % ' < > ( ) { } . $ [ ] ; @ ! ? ~ : / \ | * # , _ End If Dim Temp_String As String = String.Empty Dim Replacement_Found As Boolean = False For Each character As Char In str For x As Int32 = 0 To Characters.Length - 1 If character = Characters(x) Then Replacement_Found = True Temp_String &= Replacements(x) Exit For End If Next If Not Replacement_Found Then Temp_String &= character Else Replacement_Found = False Application.DoEvents() Next Return Temp_String End Function #End Region
Saludos!
Título: Re: Problema en Visual Basic -Net (Al remplazar una palabra)
Publicado por: XresH en 9 Junio 2013, 10:15 am
@ XResh La verdad es que no quería comentar nada acerca de "Mid" para no molestarte y para no desviar el tema, pero me he fijado en tu insistencia sobre la función Mid y lo cierto es que no me gusta ver que se promueva el uso de Mid cuando estamos en .NET, Lo digo porque "Mid" al igual que "left" "right" son funciones de VisualBasic 6 (usables en .NET), ...¿pero para que usarlas si tenemos clases y métodos de todo tipo que son obviamente mucho más rápidos y eficaces que los de VB6? Un saludo!
@ AkiseSe puede apreciar cláramente que en tu código quieres definir tus própios caracteres cifrados (O al menos eso ha dado a entender), de ahí mi código algo largo, pero si prefieres algo reálmente corto puedes usar esto: #Region " Encrypt-Decrypt String " ' [ Encrypt-Decrypt String Function ] ' ' // By Elektro H@cker ' ' Examples : ' ' MsgBox(Encrypt_Decrypt_String("Test")) ' Result: «šŒ‹ ' MsgBox(Encrypt_Decrypt_String("«šŒ‹")) ' Result: Hello Public Function Encrypt_Decrypt_String(ByVal Input As String) As String Dim Output As String = String.Empty For Each Ch As Char In Input Output &= Asc(Ch) ' Application.DoEvents() Next Return Output End Function #End Region
EDITO:Si prefieres la versión larga donde puedes definir perféctamente los caracteres que tu quieras, aquí tienes: #Region " Encrypt-Decrypt Text " ' [ Encrypt-Decrypt Text Function ] ' ' // By Elektro H@cker ' ' Examples : ' ' MsgBox(Encrypt_Text("Hello world")) ' Result: à`336 L6ë3m ' MsgBox(Decrypt_Text("à`336 L6ë3m")) ' Result: Hello world ' MsgBox(Encrypt_Text("¡ Hello world !", True)) ' Result: = <ÁÍÍÀ cÀ,Í3 Ï ' MsgBox(Decrypt_Text("= <ÁÍÍÀ cÀ,Í3 Ï", True)) ' Result: ¡ Hello world ! Public Shared Function Encrypt_Text(ByVal str As String, _ Optional ByVal Include_Special_Characters As Boolean = False) As String Static Characters As Char() Static Replacements As Char() If Include_Special_Characters Then Characters = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789áéíóúÁÉÍÓÚàèìòùÀÈÌÒÙäëïöüÄËÏÖÜçǺª<>¡!¿?()[]{}/\|·.:;,-+=_~¬^'`´¨*$%&€#@""".ToCharArray Replacements = {"h", "ó", "Ó", "3", "Á", "è", "A", "^", "ö", "~", "O", "Í", "€", "q", "ú", "À", "Ç", "È", ",", "ì", "i", "ï", "ò", "c", "0", "ñ", "4", "l", "Ü", "ª", "¬", "S", "&", "?", "<", ":", "T", "*", "e", ".", "R", "É", "D", "7", "9", "Ú", "n", "¿", "L", "m", "¨", "Ë", "]", "Ä", "Q", "w", "V", "'", "G", "K", "é", "v", "ù", "}", "P", "E", "X", "+", "í", "´", "$", "{", "_", "Ñ", "u", "ë", "H", "g", "d", "x", "8", "/", "ä", "#", "|", "-", "1", "M", "Ò", "o", ")", "N", "Y", "á", "Ù", "Ì", "%", "ç", """", "a", "=", "Ï", "z", "Ö", ">", ";", "2", "6", "B", "y", "b", "`", "s", "5", "t", "[", "(", "à", "ü", "!", "¡", "f", "W", "k", "r", "U", "J", "·", "Z", "F", "C", "º", "I", "@", "p", "j"} Else Characters = _ "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789áéíóúÁÉÍÓÚàèìòùÀÈÌÒÙäëïöüÄËÏÖÜçǺª¡¿·¬`´¨€".ToCharArray ' Removed chars for better improvement in code encryptation: = & + - ^ " % ' < > ( ) { } . $ [ ] ; @ ! ? ~ : / \ | * # , _ Replacements = _ {"u", "Ñ", "T", "m", "`", "P", "Ç", "Z", "h", "x", "á", "3", "¬", "R", "ª", "6", "ò", "N", "ë", "Ì", "g", "ö", "I", "L", "a", "À", "·", "V", "5", "Ë", "Ù", "´", "Ö", "J", "à", "¡", "n", "4", "È", "j", "ç", "b", "c", "y", "E", "ù", "Ó", "f", "º", "Q", "q", "G", "e", "B", "0", "€", "9", "o", "ì", "O", "8", "¿", "r", "v", "ó", "2", "Ï", "1", "¨", "i", "Á", "D", "t", "Í", "k", "Ú", "C", "ñ", "Ä", "S", "A", "é", "7", "Ü", "K", "z", "í", "è", "Y", "ü", "F", "s", "p", "X", "U", "Ò", "l", "É", "ú", "d", "ï", "M", "W", "H", "ä", "w"} ' a, b, c, d, e, f, g, h, i, j, k, l, m, n, ñ, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, Ñ, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, á, é, í, ó, ú, Á, É, Í, Ó, Ú, à, è, ì, ò, ù, À, È, Ì, Ò, Ù, ä, ë, ï, ö, ü, Ä, Ë, Ï, Ö, Ü, ç, Ç, º, ª, ¡, ¿, ·, ¬, `, ´, ¨, € End If Dim Temp_String As String = String.Empty Dim Replacement_Found As Boolean = False For Each character As Char In str For x As Int32 = 0 To Characters.Length - 1 If character = Characters(x) Then Replacement_Found = True Temp_String &= Replacements(x) Exit For End If Next If Not Replacement_Found Then Temp_String &= character Else Replacement_Found = False Application.DoEvents() Next Return Temp_String End Function Public Shared Function Decrypt_Text(ByVal str As String, _ Optional ByVal Include_Special_Characters As Boolean = False) As String Static Characters As Char() Static Replacements As Char() If Include_Special_Characters Then Characters = {"h", "ó", "Ó", "3", "Á", "è", "A", "^", "ö", "~", "O", "Í", "€", "q", "ú", "À", "Ç", "È", ",", "ì", "i", "ï", "ò", "c", "0", "ñ", "4", "l", "Ü", "ª", "¬", "S", "&", "?", "<", ":", "T", "*", "e", ".", "R", "É", "D", "7", "9", "Ú", "n", "¿", "L", "m", "¨", "Ë", "]", "Ä", "Q", "w", "V", "'", "G", "K", "é", "v", "ù", "}", "P", "E", "X", "+", "í", "´", "$", "{", "_", "Ñ", "u", "ë", "H", "g", "d", "x", "8", "/", "ä", "#", "|", "-", "1", "M", "Ò", "o", ")", "N", "Y", "á", "Ù", "Ì", "%", "ç", """", "a", "=", "Ï", "z", "Ö", ">", ";", "2", "6", "B", "y", "b", "`", "s", "5", "t", "[", "(", "à", "ü", "!", "¡", "f", "W", "k", "r", "U", "J", "·", "Z", "F", "C", "º", "I", "@", "p", "j"} Replacements = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789áéíóúÁÉÍÓÚàèìòùÀÈÌÒÙäëïöüÄËÏÖÜçǺª<>¡!¿?()[]{}/\|·.:;,-+=_~¬^'`´¨*$%&€#@""".ToCharArray Else Characters = _ {"u", "Ñ", "T", "m", "`", "P", "Ç", "Z", "h", "x", "á", "3", "¬", "R", "ª", "6", "ò", "N", "ë", "Ì", "g", "ö", "I", "L", "a", "À", "·", "V", "5", "Ë", "Ù", "´", "Ö", "J", "à", "¡", "n", "4", "È", "j", "ç", "b", "c", "y", "E", "ù", "Ó", "f", "º", "Q", "q", "G", "e", "B", "0", "€", "9", "o", "ì", "O", "8", "¿", "r", "v", "ó", "2", "Ï", "1", "¨", "i", "Á", "D", "t", "Í", "k", "Ú", "C", "ñ", "Ä", "S", "A", "é", "7", "Ü", "K", "z", "í", "è", "Y", "ü", "F", "s", "p", "X", "U", "Ò", "l", "É", "ú", "d", "ï", "M", "W", "H", "ä", "w"} ' a, b, c, d, e, f, g, h, i, j, k, l, m, n, ñ, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, Ñ, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, á, é, í, ó, ú, Á, É, Í, Ó, Ú, à, è, ì, ò, ù, À, È, Ì, Ò, Ù, ä, ë, ï, ö, ü, Ä, Ë, Ï, Ö, Ü, ç, Ç, º, ª, ¡, ¿, ·, ¬, `, ´, ¨, € Replacements = _ "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789áéíóúÁÉÍÓÚàèìòùÀÈÌÒÙäëïöüÄËÏÖÜçǺª¡¿·¬`´¨€".ToCharArray ' Removed chars for better improvement in code encryptation: = & + - ^ " % ' < > ( ) { } . $ [ ] ; @ ! ? ~ : / \ | * # , _ End If Dim Temp_String As String = String.Empty Dim Replacement_Found As Boolean = False For Each character As Char In str For x As Int32 = 0 To Characters.Length - 1 If character = Characters(x) Then Replacement_Found = True Temp_String &= Replacements(x) Exit For End If Next If Not Replacement_Found Then Temp_String &= character Else Replacement_Found = False Application.DoEvents() Next Return Temp_String End Function #End Region
Saludos! Estoy de acuerdo en la eficacia, discrepo con tu idea porque es absurdo a mi entender tratar de inventar una escoba nueva cuando tenemos la tradicional que lo hace bien y sin problemas.
Si viene un chino y te dice "esta escoba es la mejol, barre todo sin dejal nada" y es 10 veces mas grande, la vas a usar? no tiene sentido porque no la precisas ya que tenes la comun.
No veo necesidad de 50 lineas de codigo cuando la haces en 3 y no es el primer caso que veo, insisto, estoy de acuerdo con vos en la eficacia.
.NET trabaja diferente, no quiere decir que todos sus metodos sean mejores.
No molestas comentando, esto es un foro y opinamos, tenemos diferentes ideas de eso trata! entre todos ayudamos a los nuevos y usuarios. Es bueno saber lo que otro programador piensa, y no tenemos porque discutir ni desviar el tema, son comentarios espero no molestarte con los mios!
Tu code es bueno y esta interesante para estudiarlo, pero me parece sumamente innecesario para algo tan simple.Tan simple como esto:Dim sCadena As String = "123?%" For Each cCaracter In sCadena MsgBox(Asc(cCaracter)) Next
Luego sumar, almacenar y listo :silbar: Otra variante, no puedo estar mas de acuerdo.
Saludos.
Título: Re: Problema en Visual Basic -Net (Al remplazar una palabra)
Publicado por: Akise en 9 Junio 2013, 15:27 pm
Vaya, me da por entrar al tema, por si había alguna respuesta, y me encuentro con un montón de ellas, la verdad, me habéis ayudado mucho y os lo agradezco a todos. De momento me quedaré con el código ''largo'', lo veo como más editable, en el sentido de que con ASCII solo se puede aumentar en X número su abecedario no? Me refiero, si la letra de ASCII 'A' =65, si sumo sólo un valor, será 66 y pasará a B, cuando a mí lo que me interesa es un cifrado qwerty y cuando se acabasen los caracteres seguir con un carácter poco común más el qwerty, por ejemplo.
A = q B = w
(bla bla bla hasta terminar)
a = &q b = &w
Entonces veo un poco, raro, el sumarle a la X número para que llege a la q y así con todos.
Como sea, muchísimas gracias a todos, probaré ambos, pero tengo de preferencia el código dado por Elektro H@cker. ¡Gracias a todos repito! Así da agusto.
Título: Re: Problema en Visual Basic -Net (Al remplazar una palabra)
Publicado por: Akise en 9 Junio 2013, 15:34 pm
Vaya, me da por entrar al tema, por si había alguna respuesta, y me encuentro con un montón de ellas, la verdad, me habéis ayudado mucho y os lo agradezco a todos. De momento me quedaré con el código ''largo'', lo veo como más editable, en el sentido de que con ASCII solo se puede aumentar en X número su abecedario no? Me refiero, si la letra de ASCII 'A' =65, si sumo sólo un valor, será 66 y pasará a B, cuando a mí lo que me interesa es un cifrado qwerty y cuando se acabasen los caracteres seguir con un carácter poco común más el qwerty, por ejemplo.
A = q B = w
(bla bla bla hasta terminar)
a = &q b = &w
Entonces veo un poco, raro, el sumarle a la X número para que llege a la q y así con todos.
Como sea, muchísimas gracias a todos, probaré ambos, pero tengo de preferencia el código dado por Elektro H@cker. ¡Gracias a todos repito! Así da agusto.
Título: Re: Problema en Visual Basic -Net (Al remplazar una palabra)
Publicado por: Eleкtro en 9 Junio 2013, 19:16 pm
De momento me quedaré con el código ''largo''
A = q B = w
a = &q b = &w
1. ¿Eres consciente de que si usas 2 caracteres entonces mi código requiere de ciertas modificaciones, verdad?, deberías recorrer el string en bloques de 2 caracteres, ...Pero si además para las letras mayúsculas vas a usar 1 caracter (A = q) y para las minusculas 2 (a = &q), entonces no puedes recorrer el string ni por caracteres de "1" longitud ni de "2", a menos que ese caracter especial (&) lo dejes sin cifrar. 2. Creo que estás intentando reinventar la rueda sin saberlo, porque si estás siguiendo un orden en concreto "qwerty...blablabla" entonces lo que estás haciendo es una especie de variante del método " Caesar", y entonces diréctamente puedes usar el código "corto": http://crypo.in.ua/tools/eng_caesar.php 3. Si te fijas bien en mi código "largo" los caracteres son todos aleatórios, si quieres seguir un orden en concreto mejor no lo uses, hay cosas más fáciles xD. Salu2
Título: Re: Problema en Visual Basic -Net (Al remplazar una palabra)
Publicado por: Akise en 9 Junio 2013, 20:17 pm
1. ¿Eres consciente de que si usas 2 caracteres entonces mi código requiere de ciertas modificaciones, verdad?, deberías recorrer el string en bloques de 2 caracteres, ...Pero si además para las letras mayúsculas vas a usar 1 caracter (A = q) y para las minusculas 2 (a = &q), entonces no puedes recorrer el string ni por caracteres de "1" longitud ni de "2", a menos que ese caracter especial (&) lo dejes sin cifrar.
2. Creo que estás intentando reinventar la rueda sin saberlo, porque si estás siguiendo un orden en concreto "qwerty...blablabla" entonces lo que estás haciendo es una especie de variante del método "Caesar", y entonces diréctamente puedes usar el código "corto": http://crypo.in.ua/tools/eng_caesar.php
3. Si te fijas bien en mi código "largo" los caracteres son todos aleatórios, si quieres seguir un orden en concreto mejor no lo uses, hay cosas más fáciles xD.
Salu2
Buenas, a ver, hasta dónde puedo comprender, entiendo que si quiero dos caracteres en vez de uno, no podría dado que la longitud es de uno, si modificase esa longitud a dos, entonces no podría poner caracteres de uno, entonces, por eso no hay problema, no me importa mucho tener que depender de un sólo caracter, me parece que estoy intentando correr antes de saber andar... De tu código sólo comprendo esto; #Region " Encrypt-Decrypt Text " ' [ Encrypt-Decrypt Text Function ] ' ' // By Elektro H@cker ' ' Examples : ' ' MsgBox(Encrypt_Text("Hello world")) ' Result: à`336 L6ë3m ' MsgBox(Decrypt_Text("à`336 L6ë3m")) ' Result: Hello world ' MsgBox(Encrypt_Text("¡ Hello world !", True)) ' Result: = <ÁÍÍÀ cÀ,Í3 Ï ' MsgBox(Decrypt_Text("= <ÁÍÍÀ cÀ,Í3 Ï", True)) ' Result: ¡ Hello world ! Public Shared Function Encrypt_Text(ByVal str As String, _ Optional ByVal Include_Special_Characters As Boolean = False) As String Static Characters As Char() Static Replacements As Char() If Include_Special_Characters Then Characters = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789áéíóúÁÉÍÓÚàèìòùÀÈÌÒÙäëïöüÄËÏÖÜçǺª<>¡!¿?()[]{}/\|·.:;,-+=_~¬^'`´¨*$%&€#@""".ToCharArray Replacements = {"h", "ó", "Ó", "3", "Á", "è", "A", "^", "ö", "~", "O", "Í", "€", "q", "ú", "À", "Ç", "È", ",", "ì", "i", "ï", "ò", "c", "0", "ñ", "4", "l", "Ü", "ª", "¬", "S", "&", "?", "<", ":", "T", "*", "e", ".", "R", "É", "D", "7", "9", "Ú", "n", "¿", "L", "m", "¨", "Ë", "]", "Ä", "Q", "w", "V", "'", "G", "K", "é", "v", "ù", "}", "P", "E", "X", "+", "í", "´", "$", "{", "_", "Ñ", "u", "ë", "H", "g", "d", "x", "8", "/", "ä", "#", "|", "-", "1", "M", "Ò", "o", ")", "N", "Y", "á", "Ù", "Ì", "%", "ç", """", "a", "=", "Ï", "z", "Ö", ">", ";", "2", "6", "B", "y", "b", "`", "s", "5", "t", "[", "(", "à", "ü", "!", "¡", "f", "W", "k", "r", "U", "J", "·", "Z", "F", "C", "º", "I", "@", "p", "j"} Else Characters = _ "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789áéíóúÁÉÍÓÚàèìòùÀÈÌÒÙäëïöüÄËÏÖÜçǺª¡¿·¬`´¨€".ToCharArray ' Removed chars for better improvement in code encryptation: = & + - ^ " % ' < > ( ) { } . $ [ ] ; @ ! ? ~ : / \ | * # , _ Replacements = _ {"u", "Ñ", "T", "m", "`", "P", "Ç", "Z", "h", "x", "á", "3", "¬", "R", "ª", "6", "ò", "N", "ë", "Ì", "g", "ö", "I", "L", "a", "À", "·", "V", "5", "Ë", "Ù", "´", "Ö", "J", "à", "¡", "n", "4", "È", "j", "ç", "b", "c", "y", "E", "ù", "Ó", "f", "º", "Q", "q", "G", "e", "B", "0", "€", "9", "o", "ì", "O", "8", "¿", "r", "v", "ó", "2", "Ï", "1", "¨", "i", "Á", "D", "t", "Í", "k", "Ú", "C", "ñ", "Ä", "S", "A", "é", "7", "Ü", "K", "z", "í", "è", "Y", "ü", "F", "s", "p", "X", "U", "Ò", "l", "É", "ú", "d", "ï", "M", "W", "H", "ä", "w"} ' a, b, c, d, e, f, g, h, i, j, k, l, m, n, ñ, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, Ñ, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, á, é, í, ó, ú, Á, É, Í, Ó, Ú, à, è, ì, ò, ù, À, È, Ì, Ò, Ù, ä, ë, ï, ö, ü, Ä, Ë, Ï, Ö, Ü, ç, Ç, º, ª, ¡, ¿, ·, ¬, `, ´, ¨, € End If Dim Temp_String As String = String.Empty Dim Replacement_Found As Boolean = False For Each character As Char In str For x As Int32 = 0 To Characters.Length - 1 If character = Characters(x) Then Replacement_Found = True Temp_String &= Replacements(x) Exit For End If Next If Not Replacement_Found Then Temp_String &= character Else Replacement_Found = False Application.DoEvents() Next Return Temp_String End Function Public Shared Function Decrypt_Text(ByVal str As String, _ Optional ByVal Include_Special_Characters As Boolean = False) As String Static Characters As Char() Static Replacements As Char() If Include_Special_Characters Then Characters = {"h", "ó", "Ó", "3", "Á", "è", "A", "^", "ö", "~", "O", "Í", "€", "q", "ú", "À", "Ç", "È", ",", "ì", "i", "ï", "ò", "c", "0", "ñ", "4", "l", "Ü", "ª", "¬", "S", "&", "?", "<", ":", "T", "*", "e", ".", "R", "É", "D", "7", "9", "Ú", "n", "¿", "L", "m", "¨", "Ë", "]", "Ä", "Q", "w", "V", "'", "G", "K", "é", "v", "ù", "}", "P", "E", "X", "+", "í", "´", "$", "{", "_", "Ñ", "u", "ë", "H", "g", "d", "x", "8", "/", "ä", "#", "|", "-", "1", "M", "Ò", "o", ")", "N", "Y", "á", "Ù", "Ì", "%", "ç", """", "a", "=", "Ï", "z", "Ö", ">", ";", "2", "6", "B", "y", "b", "`", "s", "5", "t", "[", "(", "à", "ü", "!", "¡", "f", "W", "k", "r", "U", "J", "·", "Z", "F", "C", "º", "I", "@", "p", "j"} Replacements = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789áéíóúÁÉÍÓÚàèìòùÀÈÌÒÙäëïöüÄËÏÖÜçǺª<>¡!¿?()[]{}/\|·.:;,-+=_~¬^'`´¨*$%&€#@""".ToCharArray Else Characters = _ {"u", "Ñ", "T", "m", "`", "P", "Ç", "Z", "h", "x", "á", "3", "¬", "R", "ª", "6", "ò", "N", "ë", "Ì", "g", "ö", "I", "L", "a", "À", "·", "V", "5", "Ë", "Ù", "´", "Ö", "J", "à", "¡", "n", "4", "È", "j", "ç", "b", "c", "y", "E", "ù", "Ó", "f", "º", "Q", "q", "G", "e", "B", "0", "€", "9", "o", "ì", "O", "8", "¿", "r", "v", "ó", "2", "Ï", "1", "¨", "i", "Á", "D", "t", "Í", "k", "Ú", "C", "ñ", "Ä", "S", "A", "é", "7", "Ü", "K", "z", "í", "è", "Y", "ü", "F", "s", "p", "X", "U", "Ò", "l", "É", "ú", "d", "ï", "M", "W", "H", "ä", "w"} ' a, b, c, d, e, f, g, h, i, j, k, l, m, n, ñ, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, Ñ, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, á, é, í, ó, ú, Á, É, Í, Ó, Ú, à, è, ì, ò, ù, À, È, Ì, Ò, Ù, ä, ë, ï, ö, ü, Ä, Ë, Ï, Ö, Ü, ç, Ç, º, ª, ¡, ¿, ·, ¬, `, ´, ¨, € Replacements = _ "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789áéíóúÁÉÍÓÚàèìòùÀÈÌÒÙäëïöüÄËÏÖÜçǺª¡¿·¬`´¨€".ToCharArray ' Removed chars for better improvement in code encryptation: = & + - ^ " % ' < > ( ) { } . $ [ ] ; @ ! ? ~ : / \ | * # , _ End If Dim Temp_String As String = String.Empty Dim Replacement_Found As Boolean = False For Each character As Char In str For x As Int32 = 0 To Characters.Length - 1 If character = Characters(x) Then Replacement_Found = True Temp_String &= Replacements(x) Exit For End If Next If Not Replacement_Found Then Temp_String &= character Else Replacement_Found = False Application.DoEvents() Next Return Temp_String End Function #End Region
Solo entiendo la parte en la que dice lo siguiente; Else Characters = _ {"u", "Ñ", "T", "m", "`", "P", "Ç", "Z", "h", "x", "á", "3", "¬", "R", "ª", "6", "ò", "N", "ë", "Ì", "g", "ö", "I", "L", "a", "À", "·", "V", "5", "Ë", "Ù", "´", "Ö", "J", "à", "¡", "n", "4", "È", "j", "ç", "b", "c", "y", "E", "ù", "Ó", "f", "º", "Q", "q", "G", "e", "B", "0", "€", "9", "o", "ì", "O", "8", "¿", "r", "v", "ó", "2", "Ï", "1", "¨", "i", "Á", "D", "t", "Í", "k", "Ú", "C", "ñ", "Ä", "S", "A", "é", "7", "Ü", "K", "z", "í", "è", "Y", "ü", "F", "s", "p", "X", "U", "Ò", "l", "É", "ú", "d", "ï", "M", "W", "H", "ä", "w"} ' a, b, c, d, e, f, g, h, i, j, k, l, m, n, ñ, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, Ñ, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, á, é, í, ó, ú, Á, É, Í, Ó, Ú, à, è, ì, ò, ù, À, È, Ì, Ò, Ù, ä, ë, ï, ö, ü, Ä, Ë, Ï, Ö, Ü, ç, Ç, º, ª, ¡, ¿, ·, ¬, `, ´, ¨, €
Puedo comprender que el comentario que hay debajo indica la letra por la que se remplazará, dónde u = à , l = 3, y obviamente si seguimos el comentario con el ejemplo que pusiste arriba de Hello World, y remplazamos, evidentemente sale lo cifrado. Ahora bien, lo que no entiendo es dónde se está remplazando. en esta parte del código; If Include_Special_Characters Then Characters = {"h", "ó", "Ó", "3", "Á", "è", "A", "^", "ö", "~", "O", "Í", "€", "q", "ú", "À", "Ç", "È", ",", "ì", "i", "ï", "ò", "c", "0", "ñ", "4", "l", "Ü", "ª", "¬", "S", "&", "?", "<", ":", "T", "*", "e", ".", "R", "É", "D", "7", "9", "Ú", "n", "¿", "L", "m", "¨", "Ë", "]", "Ä", "Q", "w", "V", "'", "G", "K", "é", "v", "ù", "}", "P", "E", "X", "+", "í", "´", "$", "{", "_", "Ñ", "u", "ë", "H", "g", "d", "x", "8", "/", "ä", "#", "|", "-", "1", "M", "Ò", "o", ")", "N", "Y", "á", "Ù", "Ì", "%", "ç", """", "a", "=", "Ï", "z", "Ö", ">", ";", "2", "6", "B", "y", "b", "`", "s", "5", "t", "[", "(", "à", "ü", "!", "¡", "f", "W", "k", "r", "U", "J", "·", "Z", "F", "C", "º", "I", "@", "p", "j"} Replacements = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789áéíóúÁÉÍÓÚàèìòùÀÈÌÒÙäëïöüÄËÏÖÜçǺª<>¡!¿?()[]{}/\|·.:;,-+=_~¬^'`´¨*$%&€#@""".ToCharArray Else
Lo que yo estoy entendiendo es que la "h", se remplazará por la "a" de abajo, y eso no es verdad, entonces es ahí dónde no entiendo nada... ¿En que parte del código está diciendo al programa que la "u" se transforme en "a"? Siento molestar tanto, de verdad... Gracias por responder.
Título: Re: Problema en Visual Basic -Net (Al remplazar una palabra)
Publicado por: Eleкtro en 9 Junio 2013, 20:35 pm
Lo que yo estoy entendiendo es que la "h", se remplazará por la "a" de abajo, y eso no es verdad, Si, si que es así, si que es "verdad". A ver, la función se puede usar de dos maneras, se puede usar para codificar de forma "normal" (la parte que ves comentada con cada caracter), o se puede usar de una manera alternativa en la que se codifican incluso los caracteres especiales. ...Como te dije, los caracteres los puse aleatoriamente, así que la única diferencia es que de la primera manera los caracteres de la variable "Replacements" están escritos en un orden, y de la otra manera pues ...están escritos en otro orden aleatorio, aparte, como a mi no me interesa nada codificar los caracteres especiales pues no me molesté en comentar los caracteres, pero vas bien encaminado y ya sabes el orden que tiene la cosa. Un saludo!
|