Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Ayuda

Estas en el tema de Ayuda en el foro de Visual Basic clásico en Foros del Web. Estoy haciendo un programa para cifrar. El programa funciona correctamente pero quiero que cuando llegue al final del alfabeto vuelva al principio, es decir, que ...
  #1 (permalink)  
Antiguo 28/12/2007, 04:41
 
Fecha de Ingreso: diciembre-2007
Mensajes: 2
Antigüedad: 16 años, 4 meses
Puntos: 0
Ayuda

Estoy haciendo un programa para cifrar. El programa funciona correctamente pero quiero que cuando llegue al final del alfabeto vuelva al principio, es decir, que después de la z no vaya la ningun simbolo (!,/) sino otra vez la a

Cómo lo puedo hacer?

Intente con la funcion if, pero no me dio ningun resultado

Grácias
  #2 (permalink)  
Antiguo 28/12/2007, 06:02
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 18 años, 5 meses
Puntos: 13
Re: Ayuda

Hola

A ver si este código te sirve para adaptarlo a tus necesidades:

Código:
Dim letra As String
letra = "A"

For i = 1 To 55
    Text1.Text = Text1.Text & " " & letra
    letra = Chr(Asc(letra) + 1)
    If letra = "[" Then letra = "A"
Next i
--Saludos--
  #3 (permalink)  
Antiguo 28/12/2007, 08:26
 
Fecha de Ingreso: diciembre-2007
Mensajes: 2
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Ayuda

Cita:
Iniciado por Insomnia Ver Mensaje
Hola

A ver si este código te sirve para adaptarlo a tus necesidades:

Código:
Dim letra As String
letra = "A"

For i = 1 To 55
    Text1.Text = Text1.Text & " " & letra
    letra = Chr(Asc(letra) + 1)
    If letra = "[" Then letra = "A"
Next i
--Saludos--

Intente con lo que me dijiste, pero no cambia nada

El programa tiene 3 TextBox, uno donde se escribe un texto para cifrar, otro para decir el desplazamiento que quieres en el alfabeto ( por ejemplo, si quieres que la a sea una d, pondrás 3) y el otro Text Box donde se escribe el text cifrado

Mira, este es mi codigo:


Código:
Dim  longitud As integer
Dim i As integer
Dim desplazamiento As byte
Dim c As byte


desplazamiento = Me.TextBox3.Text
longitud = Len(Me.TextBox1.Text)
Me.TextBox2.Text = ""
For i = 1 to longitud
      c = Asc(Mid(Me.TextBox1.Text,i,1))
      c= c + desplazamiento
      Me.TextBox2.Text = Me.TextBox2.Text + Chr (c)

Next i
Gracias por contestar!
  #4 (permalink)  
Antiguo 31/12/2007, 02:08
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 18 años, 5 meses
Puntos: 13
Re: Ayuda

Hola

Estamos hablando de VB6 o de VB 2005?, ya que el código que te pase es para VB6, de todas formas, sea cual sea creo que se podría adaptar a tu ejemplo. En tu caso tendrías que tener en cuenta que c no pase de 122 (z en ascii), si pasa de 122 le restas 26 (diferencia entre 97 que es a y 122 que es z). Creo que tu código quedaría de la siguiente forma:

Código:
Dim  longitud As integer
Dim i As integer
Dim desplazamiento As byte
Dim c As byte


desplazamiento = Me.TextBox3.Text
longitud = Len(Me.TextBox1.Text)
Me.TextBox2.Text = ""
For i = 1 to longitud
      c = Asc(Mid(Me.TextBox1.Text,i,1))
      c= c + desplazamiento
      If c > 122 Then c = c - 26
      Me.TextBox2.Text = Me.TextBox2.Text + Chr (c)
Next i
Todo esto para el caso de que escribas solo en minúsculas, si quieres diferenciar may y min tienes que jugar con los respectivos códigos ascii (65 --> 90).

--Saludos--

Última edición por Insomnia; 31/12/2007 a las 02:35
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:49.