• Jueves 28 de Marzo de 2024, 15:31

Autor Tema:  Convertir Num Y Letras A Simbolos?  (Leído 3303 veces)

borax

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Convertir Num Y Letras A Simbolos?
« en: Jueves 1 de Mayo de 2008, 21:10 »
0
bueno para empesar soy completamente nuevo en esto de la programacion...lo estoy aprendiendo solo.

 y pues tengo un proyecto para hacer personal y tengo que crear esto que para muchos alomejor es facil pero para una persona que esta aprendiendo a base de lectura y practica....se me esta dificultando mucho....

empieso...... :comp:

en una Windows form Vb.2005 tengo 2 TextBox y uno TxtBox1 es para poner numeros y letras...0-9 y A-Z nada de minusculas todo en CAPS

y el TxtBox2 me mostrara el codigo cifrado a unos simbolos especificos...

Ejemplo
  Ï   Î  Í  Ì  Ë  Ê  É  È  Ç  Æ <---Txbox2 Me muestre esto
  0  1  2 3  4  5  6  7  8   9 <---si esto es puesto en TXTBOX1



  ¾  ½  ¼  »  º  ¹  ¸   ·  ¶  µ  ´  ³  ²   ±  °  ¯  ® ­ -  ¬  «   ª   ©   ¨   §   ¦   ¥
  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

Si en txtbox yo pongo:
Si  TxtBox1 es:
1 2 3 A B C

EL TxtBox2 sera:
Î Í Ì ¾ ½ ¼

Como ven son simbolos especificos para cada letra y numero

Una ayudita por favor en como creo esto... :hola:

Me super urgue se los agradecere siempre.....

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Convertir Num Y Letras A Simbolos?
« Respuesta #1 en: Viernes 2 de Mayo de 2008, 00:19 »
0
Tu mensaje no es muy claro, no estoy muy seguro de que es lo que solicitas.. así supondré, según  creo entender que tu lo que quieres es encriptar texto...

Entonce si esto es así, a priori no tiene porqué ser absolutamente necesatio que aparezcan símbolos ilegibles, un texto se encripta igualmente aunque se pueda leer. Hecha esta aclaración y puesto que eres principiante, te doy una sencilla explicación.

Entonces lo primero que necesitas es tener a la vista el código ASCII, para entender lo que vamos a hacer abre la siguiente aplicación: menú inicio --> Todos los progeamas --> Accesorios --> Herramientas del Sistema --> Mapa de Caracteres     .... selecciona la fuente por ejemplo ARIAL.

Como podrás ver hay unos símbolos en primer lugar, luego vienen los números, luego las mayúsculas, luego las minúsculas, y luego más símbolos...

El primer símbolo que aparece es el de admiración (en windows XP, en los S.O. anteriores creo recordar que era el espacio y ocupa la posición 32) el signo de amiración ocupa la posición 33, la letra 'A' ocupa la posición 65, la letra 'Z' la 90 y la 'a' la posición 97...

Bien pués todo lo que necesitas para cambiar letras por símbolos es sustituir cada letra por aquella cuyo código sea 'n' posiciones más adelante, por ejemplo si sólo vas a usar caracteres del a A hasta la Z puedes usar desde el código 165 en adelante, es decir sumas 100 posiciones a cada carácter.

Código: Text
  1.  
  2. public function cambiar_Letra(letra as string) as string
  3.      dim letraMas100 as string  ' nota letra debe tener un sólo carácter en esta función
  4.    
  5.      letraMas100= CHR&#036; ( ASC ( letra ) + 100)
  6.  
  7.      cambiar_Letra= LetraMas100
  8. end function
  9.  
  10.  

Aquí en el ejemplo se cambia una letra por la equivalente en el código ASCII pero 100 posiciones más adelante. Para cambiar todo el texto (lo dejo como ejercicio para ti ) deberías incluir un bucle que fuera despiezando cada letra, convirtiéndola y luego ir uniéndola nuevamente.

Igualmente en tu función puedes proveer un parámetro para que no sea siempre 100 las posiciones añadidas...

Al ser principante en programación es mejor que primero acapares conceptos, ya que esto en sí mismo sería una encriptación muy sencilla, sin embargo es lo que entiendo que has pedido...
«Ma non troppo»
----> ModoVacaciones = False<----

borax

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Convertir Num Y Letras A Simbolos?
« Respuesta #2 en: Viernes 2 de Mayo de 2008, 00:26 »
0
wow eso fue rapido...pero deja te copmento que si es necesario esos mismos symbolos lo que necesito hasi mapiado como esta....

por que sera parte de un dialogo que ya esta cifrado de esta manera so tengo que asignar symbolos a cada letra y numero como esta en el primer post mio....

pero el problema es que noce cmo empesar so mi idea es que alguien me proporcione el empesar...

ejemplo
Si en txtbox1 yo pongo:
Si TxtBox1 es:
1 2 3 A B C

me muestre automaticamente
EL TxtBox2 sera:
Î Í Ì ¾ ½ ¼

y si tienen que ser especificos....y el map call que estamos usando es el que muestro pero tiene que ser especifica A con su simbolo  y hasi sucesibamente...

te agradesco tu respuesta....me super urgue...si alguien por favor me puede ayudar.... :(

borax

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Convertir Num Y Letras A Simbolos?
« Respuesta #3 en: Viernes 2 de Mayo de 2008, 09:23 »
0
no les pido que hagan esto por mi....solo les estoy pidiendo ayuda,,,por favor.....solo necesito un DEMO de como hacer esto....me estoy volviendo loco....o algo que tenga un poco de codigo o algo que lueda entender con mi poca experiencia.....GRACIAS.................. :alien:

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Convertir Num Y Letras A Simbolos?
« Respuesta #4 en: Viernes 2 de Mayo de 2008, 20:32 »
0
Hola, te explicas bastante, bastante mal...

Ahora creo entender que lo que quieres es desencriptar un código porque tal como te explicas pareces decir que necesitas obtener exactamente el código indicado y no otro.

En eso no puedo perder tiempo,  eso es ya una tarea, supongo que atiende a algún trabajito que os han explicado en clase al que no has prestado atención y ahora quieres que te lo den hecho.

Desencrioptar un código puede ser tan breve como unos minutos o tan largo como siglos. Atiende en clase a las explicaciones y estudia más...

Si en efecto es un ejercicio que os han puesto en clase es de suponer que habrán empleado transposición de caracteres o incluso sustitución de caracteres, pero eso es ya trabajo tuyo.
«Ma non troppo»
----> ModoVacaciones = False<----

borax

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Convertir Num Y Letras A Simbolos?
« Respuesta #5 en: Sábado 3 de Mayo de 2008, 07:03 »
0
pues saludos....mira la verdad no quero ofender no verle la cara a nadie...

que mal que usted lo entienda de esa manera tengo 36 años y no estudio esto solo estoy aprendiendo y leyendo lo basico.

Solo que quiero aprender esto por que me va hacer falta para un proyecto que tengo de escritura a un PIC U11956 para un sistema de lectura a un Atmel en Simbolos....

es robotica lo cual es un hobie que tengo desde niño y hoy en dia quisiera aprender a escribir mi propio codigo y no depender de otras personas...

Espero esto te explique por que quiero hacer esto.

y solo para informarte no es desifrar si no crear el codigo por eso digo que necesito escribir Letras y Numeros pero que me De esos Simbolos exactos y usar el codigo que me de para mi protecto.... el codigo es basico y preciso y nunca cambiara, por eso tienen que ser esos...

,,si quisiera que me hagan el trabajo pues pagaria por ello sin ningun problema....

 lo que necesito es solo un demo de como empesar ya que solo se seguir un codigo no crearlo....

espero lo comprendas y entiendas mi punto de vista, yo tanbien entiendo el tuyo,,,

Gracias y perdona si esto se mira como si yo quisiera aprobecharme de alguien lo cual de beras y de corazon no es hasi....Pero si no es posible que me ayuden pues alguien cierre el post y pues gracias por todo..

Perdonen por pedir ayuda....solo quiero aprender....GRACIAS a TODOS

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Convertir Num Y Letras A Simbolos?
« Respuesta #6 en: Jueves 8 de Mayo de 2008, 05:09 »
0
Cita de: "borax"

  ¾  ½  ¼  »  º  ¹  ¸   ·  ¶  µ  ´  ³  ²   ±  °  ¯  ® ­ -  ¬  «   ª   ©   ¨   §   ¦   ¥
  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

 
Todavía no acabo de entender que quieres realmente.

sólo por suponer...

Si necesitas que dados unos caracteres "A B C D ..." se conviertan de fijo en otros caracteres, distintos pero siempre con una correspondencia unívoca, todo lo que ienes que hacer es crear una tabla de conversión.

Esto puedes hacerlo de varias formas, siendo unas más rápido que otras. Y el modo a usar dependería de la asignación. Si existe correlación entre los símbolos a aparecer tal como la hay con los caracteres alfabéticos, entonces el cófigo podría ser como el que ya te anoté en otro mensaje. Si sin embargo no existe una correlación ni un orden lógico, entonces la conversión debe hacerse manual, tampoco es mucho más trabajosa, sólo menos elegante y algo más lenta quizás... de todos modos vb.NET vuela con las cadenas, por lo que aunque le pongas un tocho de 100MB. l ocnvertirá en algunos segundos...

Se me ocurre pués 2 formas sencillas que puedes abordar, una es un codificador con 1 entrada de datos  y 1 sola salida y 2 n entradas de control donde cada una contiene cada tabla de códigos.  El otro modo te será más asequible de entender y seguir, pués se trataría de crear dos matrices o cadenas con cada correpondiente carácter en el mismo índice de cada matriz respectivamente... es mejor ponerlos en una clase...

[CODE]
«Ma non troppo»
----> ModoVacaciones = False<----

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Convertir Num Y Letras A Simbolos?
« Respuesta #7 en: Jueves 8 de Mayo de 2008, 05:42 »
0
Cita de: "borax"
  ¾  ½  ¼  »  º  ¹  ¸   ·  ¶  µ  ´  ³  ²   ±  °  ¯  ® ­ -  ¬  «   ª   ©   ¨   §   ¦   ¥
  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

Todavía no acabo de entender que quieres realmente.

sólo por suponer...

Si necesitas que dados unos caracteres "A B C D ..." se conviertan de fijo en otros caracteres, distintos pero siempre con una correspondencia unívoca, todo lo que ienes que hacer es crear una tabla de conversión.

Esto puedes hacerlo de varias formas, siendo unas más rápido que otras. Y el modo a usar dependería de la asignación. Si existe correlación entre los símbolos a aparecer tal como la hay con los caracteres alfabéticos, entonces el cófigo podría ser como el que ya te anoté en otro mensaje. Si sin embargo no existe una correlación ni un orden lógico, entonces la conversión debe hacerse manual, tampoco es mucho más trabajosa, sólo menos elegante y algo más lenta quizás... de todos modos vb.NET vuela con las cadenas, por lo que aunque le pongas un tocho de 100MB. l ocnvertirá en algunos segundos...

Se me ocurre pués 2 formas sencillas que puedes abordar, una es un codificador con 1 entrada de datos  y 1 sola salida y 2 n entradas de control donde cada una contiene cada tabla de códigos.  El otro modo te será más asequible de entender y seguir, pués se trataría de crear dos matrices o cadenas con cada correpondiente carácter en el mismo índice de cada matriz respectivamente... es mejor ponerlos en una clase...

entoncres creamos un nuevo pproyecto, constará de un formularo y añadiremos una clase:

Código de la clase:
Código: Text
  1.  
  2. Public Class codifica
  3.  
  4.     ' piensa si las tablas deberían incluir un carácter de espacio
  5.     Private entrada As String  ' tabla origen: &#34;ABCDEF...&#34;
  6.     Private salida As String   ' tabla correspon: &#34;¾½¼»º¹...&#34;
  7.  
  8.     ' las tablas deben ser igual de largas sin repeticiones y sin espacios en blanco
  9.     ' no se comprueban esos puntos se supone correcto...
  10.     Public Sub New(ByVal tablaOrigen As String, ByVal tablaDestino As String)
  11.         Me.entrada = tablaOrigen
  12.         Me.salida = tablaDestino
  13.     End Sub
  14.  
  15.     ' convierte un´texto desde un código de origen a otro de destino especificados en tablas
  16.     Public Function convertir(ByVal texto As String) As String
  17.         Dim txt As String = &#34;&#34; ' cadena de salida
  18.         Dim car As String = &#34;&#34; ' un único carácter
  19.         Dim n As Integer = 0 ' posición de un carácter en la cadena
  20.  
  21.         On Error GoTo errorCaracter
  22.         For k As Integer = 0 To texto.Length - 1  ' se inicia un bucle
  23.             car = texto.ElementAt(k)      ' toma un carácter del texto introducido
  24.             n = Me.entrada.IndexOf(car)   ' lo busca en la cadena origen y toma su posición
  25.             txt &= Me.salida.ElementAt(n) ' con la posición hallada toma el carácter en dicha posición y lo añade
  26.         Next
  27.         Return txt
  28.         Exit Function
  29. errorCaracter:
  30.         MessageBox.Show(&#34;se produjo un error un cáracter del texto no consta en el 'diccionario' origen.&#34; & vbCrLf & _
  31.                         &#34;Se aborta la conversión... es el carácter entrecomillado: ( &#34; & car & &#34; )&#34;, &#34;ERROR: carácter fuera de la tabla...&#34;, MessageBoxButtons.OK, MessageBoxIcon.Error)
  32.     End Function
  33.  
  34.     ' permite cambiar más adelante las tablas de conversión si se desea.
  35.     Public Sub cambiar_Codigos(ByVal tablaOrigen As String, ByVal tablaDestino As String)
  36.         Me.entrada = tablaOrigen
  37.         Me.salida = tablaDestino
  38.     End Sub
  39. End Class
  40.  
  41.  

Código del formulario:
Código: Text
  1.  
  2. Public Class Form1
  3.     Public cod As codifica ' instancia la clase codifica
  4.  
  5.     ' asigna las tablas de códigos a la clase instanciada
  6.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  7.         ' NOTA: no comprueba que haya caracteres repetidos
  8.         ' NOTA-2: a las tablas se les ha incluído también el espacio al inicio del todo
  9.         If Len(TextBox1.Text = TextBox2.Text) Then
  10.             cod = New codifica(TextBox1.Text, TextBox2.Text)
  11.         Else
  12.             MessageBox.Show(&#34;Un texto tiene más caracteres que otro. ambos deben tener el mismo número de caracteres.&#34;, &#34;No se pudo asignar las tablas...&#34;, MessageBoxButtons.OK, MessageBoxIcon.Warning)
  13.         End If
  14.     End Sub
  15.  
  16.     ' convierte el código que hay en el textbox3 y lo deposita en el textbox4
  17.     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  18.         TextBox4.Text = cod.convertir(TextBox3.Text.ToUpper) ' nota que se connvierte a mayúculas previamente
  19.     End Sub
  20.  
  21.     ' cambia las tablas de códigos por otras diferentes... sólo comprueba que tengan el mismo tamaño
  22.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  23.         ' NOTA: no comprueba que haya caracteres repetidos
  24.         If Len(TextBox1.Text = TextBox2.Text) Then
  25.             Call cod.cambiar_Codigos(TextBox1.Text, TextBox2.Text)
  26.         Else
  27.             MessageBox.Show(&#34;Un texto tiene más caracteres que otro. ambos deben tener el mismo número de caracteres.&#34;, &#34;No se pudo reasignar las tablas...&#34;, MessageBoxButtons.OK, MessageBoxIcon.Warning)
  28.         End If
  29.     End Sub
  30. End Class    
  31.  
  32.  

Imagen del formulario como quedaría...: añadirle 4 textbox y 2 botones, al gusto...

«Ma non troppo»
----> ModoVacaciones = False<----