elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Problema en Visual Basic -Net (Al remplazar una palabra)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Problema en Visual Basic -Net (Al remplazar una palabra)  (Leído 7,270 veces)
Akise

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Problema en Visual Basic -Net (Al remplazar una palabra)
« 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;

Código
  1.    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  2.  
  3.        '# ENVÍA LO ESCRITO A LA CAJA DE TEXTO 2. (PARA LUEGO TRANSOFRMARLO EN LA OTRA CAJA Y
  4.        '# NO EN LA PRIMERA, (SE EXPLICA MÁS ADELANTE EL SIGUIENTE CÓDIGO)
  5.  
  6.        TextBox2.Text = TextBox1.Text
  7.  
  8.        '########################################################################################
  9.        '# LO QUE HACE  TextBox2.Text = Remplace(TextBox2.Text, "a", "i") será que lo escrito ###
  10.        '# en la caja número 2, el caracter en las primeras comillas dobles se transformará #####
  11.        '# en la letra escrita en las segundas comillas dobles, en este caso la a en la i. ######
  12.        '# de esta forma el texto se cifrará. ################################################
  13.        '########################################################################################
  14.  
  15.        '# ABECEDARIO ESPAÑOL MINÚSCULAS
  16.  
  17.        TextBox2.Text = Replace(TextBox2.Text, "a", "q")
  18.        TextBox2.Text = Replace(TextBox2.Text, "á", "w")
  19.        TextBox2.Text = Replace(TextBox2.Text, "b", "e")
  20.        TextBox2.Text = Replace(TextBox2.Text, "c", "r")
  21.        TextBox2.Text = Replace(TextBox2.Text, "d", "t")
  22.        TextBox2.Text = Replace(TextBox2.Text, "e", "y")
  23.        TextBox2.Text = Replace(TextBox2.Text, "é", "u")
  24.        TextBox2.Text = Replace(TextBox2.Text, "f", "i")
  25.        TextBox2.Text = Replace(TextBox2.Text, "g", "o")
  26.        TextBox2.Text = Replace(TextBox2.Text, "h", "p")
  27.        TextBox2.Text = Replace(TextBox2.Text, "i", "a")
  28.        TextBox2.Text = Replace(TextBox2.Text, "í", "s")
  29.        TextBox2.Text = Replace(TextBox2.Text, "j", "d")
  30.        TextBox2.Text = Replace(TextBox2.Text, "k", "f")
  31.        TextBox2.Text = Replace(TextBox2.Text, "l", "g")
  32.        TextBox2.Text = Replace(TextBox2.Text, "m", "h")
  33.        TextBox2.Text = Replace(TextBox2.Text, "n", "i")
  34.        TextBox2.Text = Replace(TextBox2.Text, "ñ", "j")
  35.        TextBox2.Text = Replace(TextBox2.Text, "o", "k")
  36.        TextBox2.Text = Replace(TextBox2.Text, "ó", "l")
  37.        TextBox2.Text = Replace(TextBox2.Text, "p", "ñ")
  38.        TextBox2.Text = Replace(TextBox2.Text, "q", "z")
  39.        TextBox2.Text = Replace(TextBox2.Text, "r", "x")
  40.        TextBox2.Text = Replace(TextBox2.Text, "s", "c")
  41.        TextBox2.Text = Replace(TextBox2.Text, "t", "v")
  42.        TextBox2.Text = Replace(TextBox2.Text, "u", "b")
  43.        TextBox2.Text = Replace(TextBox2.Text, "ú", "n")
  44.        TextBox2.Text = Replace(TextBox2.Text, "ü", "m")
  45.        TextBox2.Text = Replace(TextBox2.Text, "v", "&q")
  46.        TextBox2.Text = Replace(TextBox2.Text, "w", "&w")
  47.        TextBox2.Text = Replace(TextBox2.Text, "x", "&r")
  48.        TextBox2.Text = Replace(TextBox2.Text, "y", "&e")
  49.        TextBox2.Text = Replace(TextBox2.Text, "z", "&t")
  50.  
  51.        '# ABECEDARIO ESPAÑOL MAYÚSCULAS.
  52.  
  53.  
  54.        TextBox2.Text = Replace(TextBox2.Text, "A", "&y")
  55.        TextBox2.Text = Replace(TextBox2.Text, "Á", "&u")
  56.        TextBox2.Text = Replace(TextBox2.Text, "B", "&i")
  57.        TextBox2.Text = Replace(TextBox2.Text, "C", "&o")
  58.        TextBox2.Text = Replace(TextBox2.Text, "D", "&p")
  59.        TextBox2.Text = Replace(TextBox2.Text, "E", "&a")
  60.        TextBox2.Text = Replace(TextBox2.Text, "É", "&s")
  61.        TextBox2.Text = Replace(TextBox2.Text, "F", "&d")
  62.        TextBox2.Text = Replace(TextBox2.Text, "G", "&f")
  63.        TextBox2.Text = Replace(TextBox2.Text, "H", "&g")
  64.        TextBox2.Text = Replace(TextBox2.Text, "I", "&h")
  65.        TextBox2.Text = Replace(TextBox2.Text, "Í", "&j")
  66.        TextBox2.Text = Replace(TextBox2.Text, "J", "&k")
  67.        TextBox2.Text = Replace(TextBox2.Text, "K", "&l")
  68.        TextBox2.Text = Replace(TextBox2.Text, "L", "&ñ")
  69.        TextBox2.Text = Replace(TextBox2.Text, "M", "&z")
  70.        TextBox2.Text = Replace(TextBox2.Text, "N", "&x")
  71.        TextBox2.Text = Replace(TextBox2.Text, "Ñ", "&c")
  72.        TextBox2.Text = Replace(TextBox2.Text, "O", "&v")
  73.        TextBox2.Text = Replace(TextBox2.Text, "Ó", "&b")
  74.        TextBox2.Text = Replace(TextBox2.Text, "P", "&n")
  75.        TextBox2.Text = Replace(TextBox2.Text, "Q", "&m")
  76.        TextBox2.Text = Replace(TextBox2.Text, "R", "%q")
  77.        TextBox2.Text = Replace(TextBox2.Text, "S", "%w")
  78.        TextBox2.Text = Replace(TextBox2.Text, "T", "%e")
  79.        TextBox2.Text = Replace(TextBox2.Text, "U", "%r")
  80.        TextBox2.Text = Replace(TextBox2.Text, "Ú", "%t")
  81.        TextBox2.Text = Replace(TextBox2.Text, "Z", "%y")
  82.  
  83.        '# NÚMEROS
  84.  
  85.        TextBox2.Text = Replace(TextBox2.Text, "0", "%u")
  86.        TextBox2.Text = Replace(TextBox2.Text, "1", "%i")
  87.        TextBox2.Text = Replace(TextBox2.Text, "2", "%o")
  88.        TextBox2.Text = Replace(TextBox2.Text, "3", "%p")
  89.        TextBox2.Text = Replace(TextBox2.Text, "4", "%a")
  90.        TextBox2.Text = Replace(TextBox2.Text, "5", "%s")
  91.        TextBox2.Text = Replace(TextBox2.Text, "6", "%d")
  92.        TextBox2.Text = Replace(TextBox2.Text, "7", "%f")
  93.        TextBox2.Text = Replace(TextBox2.Text, "8", "%g")
  94.        TextBox2.Text = Replace(TextBox2.Text, "9", "%h")
  95.  
  96.        '# OTROS CARACTERES
  97.  
  98.        TextBox2.Text = Replace(TextBox2.Text, ":", "@q")
  99.        TextBox2.Text = Replace(TextBox2.Text, ";", "@w")
  100.        TextBox2.Text = Replace(TextBox2.Text, ".", "@e")
  101.        TextBox2.Text = Replace(TextBox2.Text, "(", "@r")
  102.        TextBox2.Text = Replace(TextBox2.Text, ")", "@t")
  103.        TextBox2.Text = Replace(TextBox2.Text, "¿", "@y")
  104.        TextBox2.Text = Replace(TextBox2.Text, "?", "@u")
  105.        TextBox2.Text = Replace(TextBox2.Text, "¡", "@i")
  106.        TextBox2.Text = Replace(TextBox2.Text, "!", "@o")
  107.        TextBox2.Text = Replace(TextBox2.Text, "@", "/p")
  108.        TextBox2.Text = Replace(TextBox2.Text, "€", "/a")
  109.        TextBox2.Text = Replace(TextBox2.Text, "$", "/s")
  110.        TextBox2.Text = Replace(TextBox2.Text, "/", "(d")
  111.  
  112.        '# EXPRESIONES (SÍMBOLOS MATEMÁTICOS)
  113.  
  114.        TextBox2.Text = Replace(TextBox2.Text, "=", ")q")
  115.        TextBox2.Text = Replace(TextBox2.Text, "*", ")w")
  116.        TextBox2.Text = Replace(TextBox2.Text, "/", ")e")
  117.        TextBox2.Text = Replace(TextBox2.Text, "+", ")r")
  118.        TextBox2.Text = Replace(TextBox2.Text, "-", ")t")
  119.        TextBox2.Text = Replace(TextBox2.Text, "^", ")y")
  120.  
  121.  

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.


« Última modificación: 9 Junio 2013, 20:06 pm por Akise » En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Problema en Visual Basic -Net (Al remplazar una palabra)
« Respuesta #1 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


« Última modificación: 8 Junio 2013, 19:58 pm por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Akise

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: Problema en Visual Basic -Net (Al remplazar una palabra)
« Respuesta #2 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.

En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Problema en Visual Basic -Net (Al remplazar una palabra)
« Respuesta #3 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
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Akise

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: Problema en Visual Basic -Net (Al remplazar una palabra)
« Respuesta #4 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.
En línea

XresH


Desconectado Desconectado

Mensajes: 384



Ver Perfil WWW
Re: Problema en Visual Basic -Net (Al remplazar una palabra)
« Respuesta #5 en: 8 Junio 2013, 21:37 pm »

Usa la función Mid.

Saludos.
En línea

[ - Si eres programador y quieres que tus proyectos esten en mi blog(con o sin source), consúltame! - ]
Entra A Mi Blog De Programación | | Dudas en este post :| | >>Clic para ir al Post<<
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.821



Ver Perfil
Re: Problema en Visual Basic -Net (Al remplazar una palabra)
« Respuesta #6 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:

Código
  1. Public Class Form1
  2.  
  3.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  4.  
  5.        MsgBox(Encrypt_text("¡ Hello world !")) ' Result: @i Hello world @o
  6.  
  7.    End Sub
  8.  
  9.    Public Shared Function Encrypt_text(ByVal str As String) As String
  10.  
  11.        Static Special_Characters As Char() = ":;-()¿?¡!@€$/".ToCharArray
  12.  
  13.        Static Special_Characters_Replacement() As String = _
  14.        {"@q", "@w", "@e", "@r", "@t", "@y", "@u", "@i", "@o", "@p", "@a", "@s", "@d"}
  15.        ' :  ,  ;  ,  -  ,  (  ,  )  ,  ¿  ,  ?  ,  ¡  ,  !  ,  @  ,  €  ,  $  ,  /
  16.  
  17.        Dim Temp_String As String = String.Empty
  18.        Dim Replacement_Found As Boolean = False
  19.  
  20.        For Each character As Char In str ' Recorremos cada caracter de la variable str
  21.  
  22.            For x As Int32 = 0 To Special_Characters.Length - 1 ' recorremos cada caracter de nuestro array de caracteres
  23.                If character = Special_Characters(x) Then ' si caracter de STR es igual a caracter de ARRAY...
  24.                    Replacement_Found = True
  25.                    Temp_String &= Special_Characters_Replacement(x)
  26.                    Exit For ' Salimos de la iteración para ahorrar tiempo
  27.                End If
  28.            Next
  29.  
  30.            If Not Replacement_Found Then Temp_String &= character Else Replacement_Found = False
  31.  
  32.        Next
  33.  
  34.        Return Temp_String
  35.  
  36.    End Function
  37.  
  38. End Class

Saludos
En línea

Flamer


Desconectado Desconectado

Mensajes: 1.051


crack, crack y mas crack...


Ver Perfil WWW
Re: Problema en Visual Basic -Net (Al remplazar una palabra)
« Respuesta #7 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
En línea

Mi Canal De Youtube y Blog

https://elblogdeflamer.blogspot.com

XresH


Desconectado Desconectado

Mensajes: 384



Ver Perfil WWW
Re: Problema en Visual Basic -Net (Al remplazar una palabra)
« Respuesta #8 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.
En línea

[ - Si eres programador y quieres que tus proyectos esten en mi blog(con o sin source), consúltame! - ]
Entra A Mi Blog De Programación | | Dudas en este post :| | >>Clic para ir al Post<<
43H4FH44H45H4CH49H56H45H
Wiki

Desconectado Desconectado

Mensajes: 502



Ver Perfil
Re: Problema en Visual Basic -Net (Al remplazar una palabra)
« Respuesta #9 en: 9 Junio 2013, 05:07 am »

Tan simple como esto:
Código
  1. Dim sCadena As String = "123?%"
  2. For Each cCaracter In sCadena
  3.    MsgBox(Asc(cCaracter))
  4. Next
Luego sumar, almacenar y listo  :silbar:
« Última modificación: 9 Junio 2013, 05:11 am por 43H4FH44H45H4CH49H56H45H » En línea


-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
remplazar una sola palabra de un texto o archivo
Programación Visual Basic
ELGRANSOLRAC 4 1,965 Último mensaje 13 Agosto 2007, 23:04 pm
por ELGRANSOLRAC
Cual se utiliza mas actualmente Visual Basic o Visual basic.net?
Programación Visual Basic
Axus 9 12,741 Último mensaje 4 Julio 2009, 07:00 am
por el_c0c0
[Ayuda] Sniffer en visual basic, para visual basic
Programación Visual Basic
The_Shakah 8 10,086 Último mensaje 18 Agosto 2010, 19:35 pm
por _katze_
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines