• Miércoles 29 de Mayo de 2024, 16:58

Autor Tema:  Problema Al girar palabras  (Leído 2859 veces)

mejork1capuleto

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Problema Al girar palabras
« en: Martes 16 de Febrero de 2010, 01:19 »
0
Hola soy nuevo en esto de la programacion, utilizo visual studio 2005 y mi problema es el siguiente.
Me podrias dar el codigo para poder girar individualmente cada palabra de un texto.

Yo he creado 2 funciones, una para ver cuando es un Separador(un espacio) y otra para que me gire la palabra.
Despues llamo a las dos en la funcion principal...os pongo el codigo aqui haver si veis que faya.

Esta es la funcion separado:
   Private Function esseparador(ByVal c As String) As Boolean
        Const Separadores As String = " ,.;:(){}[]'¡!?¿-_" & vbCrLf
        If InStr(Separadores, c, CompareMethod.Binary) = 0 Then
            esseparador = False
        Else
            esseparador = True
        End If
    End Function

Esta es la funcion para girar la palabra
 Private Function giracad(ByVal palabra As String) As String
        giracad = ""
        Dim n As Integer
        For n = 1 To Len(palabra)
            giracad = Mid$(palabra, n, 1) + giracad
        Next n
    End Function


Y esta la funcion Principal donde uso las dos anteriores:
Private Function girapala(ByVal cad As String) As String
        Dim n As Integer
        girapala = ""
        Dim s As String = ""
        Dim palabra As String
        Dim c As String
        For n = 1 To Len(cad)
            c = Mid$(cad, n, 1)
            If esseparador(c) Then
                palabra = palabra + c
              Else
                giracad(palabra)
                s = s + palabra
                s = s + c
                palabra = ""
            End If
        Next n
        giracad(palabra)
        s = s + palabra
        girapala = s
    End Function


Este es el evento click
Private Sub cmdGira_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdGira.Click
        txtDestino.Text = girapala(txtOrigen.Text)
    End Sub


Perdonad por el tocho haber si me podéis decir que es lo que falla!!gracias

fm89-10

  • Miembro activo
  • **
  • Mensajes: 75
  • Nacionalidad: ni
    • Ver Perfil
Re: Problema Al girar palabras
« Respuesta #1 en: Martes 16 de Febrero de 2010, 06:14 »
0
hola tu codigo esta casi bueno solo le hice unas pequeñas modificaciones.
Código: Visual Basic
  1.  
  2. Private Function esseparador(ByVal c As String) As Boolean
  3. Const Separadores As String = " ,.;:(){}[]'¡!?¿-_" & vbCrLf
  4. If InStr(1, Separadores, c, vbBinaryCompare) = 0 Then
  5. esseparador = False
  6. Else
  7. esseparador = True
  8. End If
  9. End Function
  10. Private Function giracad(ByVal palabra As String) As String
  11. giracad = ""
  12. Dim n As Integer
  13. For n = Len(palabra) To 1 Step -1
  14. giracad = Mid$(palabra, n, 1) + giracad
  15. Next
  16. End Function
  17. Private Function girapala(ByVal cad As String) As String
  18. Dim n As Integer
  19. girapala = ""
  20. Dim s As String
  21. Dim palabra As String
  22. Dim c As String
  23. For n = Len(cad) To 1 Step -1
  24. c = Mid$(cad, n, 1)
  25. If esseparador(c) Then
  26. palabra = palabra + c
  27. Else
  28. giracad (palabra)
  29. s = s + palabra
  30. s = s + c
  31. palabra = ""
  32. End If
  33. Next
  34. giracad (palabra)
  35. s = s + palabra
  36. girapala = s
  37. End Function
  38. Private Sub Command1_Click()
  39. Text1.Text = girapala(Text2.Text)
  40.  
  41. End Sub
  42.  
  43.  
  44.  

ya lo probe y funciona, alguna duda me dices. suerte  :hola:

mejork1capuleto

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Problema Al girar palabras
« Respuesta #2 en: Martes 16 de Febrero de 2010, 12:12 »
0
Gracias por la respuesta, pero no es exactamente lo que quiero, con tu ejemplo si pongo "hola que tal estas", me saldra esto....."satse lat euq aloh" y lo que quiero yo es que cada palabra se quede es su posicion original sabes? asi,
" aloh euq lat stse", haver si me puedes ayudar, gracias!!!!

fm89-10

  • Miembro activo
  • **
  • Mensajes: 75
  • Nacionalidad: ni
    • Ver Perfil
Re: Problema Al girar palabras
« Respuesta #3 en: Martes 16 de Febrero de 2010, 17:31 »
0
hola, tienes suerte que ahorita no tengo nada que hacer asi que te dejo el ejemplo como decias.

Código: Visual Basic
  1.  
  2. Private Function esseparador(ByVal c As String) As Boolean
  3. Const Separadores As String = " ,.;:(){}[]'¡!?¿-_" & vbCrLf
  4. If InStr(1, Separadores, c, vbBinaryCompare) = 0 Then
  5. esseparador = False
  6. Else
  7. esseparador = True
  8. End If
  9. End Function
  10. Private Function giracad(ByVal palabra As String) As String
  11. giracad = ""
  12. Dim n As Integer
  13. Dim cad As String
  14. For n = Len(palabra) To 1 Step -1
  15. cad = Mid$(palabra, n, 1)
  16. giracad = giracad + cad
  17. Next
  18. End Function
  19. Private Function girapala(ByVal cad As String) As String
  20. Dim n As Integer
  21. girapala = ""
  22. Dim s As String
  23. Dim palabra As String
  24. Dim c As String
  25. For n = 1 To Len(cad)
  26. c = Mid$(cad, n, 1)
  27. If esseparador(c) Then
  28. palabra = palabra + giracad(s) + c
  29. s = ""
  30. Else
  31. s = s + c
  32. End If
  33. Next n
  34. s = giracad(s)
  35. s = palabra + s
  36. girapala = s
  37. End Function
  38. Private Sub Command1_Click()
  39. Text1.Text = girapala(Text2.Text)
  40. End Sub
  41.  
  42.  
  43.  

alguna duda me dices. suerte  :hola:

mejork1capuleto

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Problema Al girar palabras
« Respuesta #4 en: Miércoles 17 de Febrero de 2010, 00:29 »
0
Gracias eso es lo que queria!!!!hoy tube un examen en el instituto!!!jaja...me salio bastante bien!!!!cuando tenga mas dudas las posteare!!!gracias!!! :P