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

¿Cómo puedo hacer esto en VB8?

Estas en el tema de ¿Cómo puedo hacer esto en VB8? en el foro de Visual Basic clásico en Foros del Web. Hola A todos: Ante todo aclarar que tengo muy pocos conocimientos sobre la programación y estoy en proceso de aprendizaje. Estoy tratando de hacer un ...
  #1 (permalink)  
Antiguo 20/03/2011, 09:43
 
Fecha de Ingreso: septiembre-2006
Mensajes: 4
Antigüedad: 17 años, 7 meses
Puntos: 0
¿Cómo puedo hacer esto en VB8?

Hola A todos:
Ante todo aclarar que tengo muy pocos conocimientos sobre la programación y estoy en proceso de aprendizaje.
Estoy tratando de hacer un pequeño software en Visual Base 8 que buscará dentro de un String cuantas palabras terminan en un caracter determinado.
Como que las palabras están separadas por espacios pensé pasar el valor de un texbox a una variable, buscar dentro de ella el caracter espacio y retrocer para ver que caracter es, y en dependencia de cual sea incrementar el número de una variable.
Al final devolver el valor de cada una de las variables en varios textbox con un label "
X palabras terminan en S
X palabras terminan en A
y así sucesivamente.
Pues bien, ya le he dado mil vueltas a esto y no he podido hacer nada, con InStr,
Len, y cuantas funciones para tratamiento de cadenas.
Si me pudieran dar una idea de cómo desarrollar algo así me será de mucha ayuda.
Muchas gracias por su tiempo.
Livan
  #2 (permalink)  
Antiguo 20/03/2011, 15:44
Avatar de Gakex  
Fecha de Ingreso: enero-2009
Mensajes: 137
Antigüedad: 15 años, 3 meses
Puntos: 4
Respuesta: ¿Cómo puedo hacer esto en VB8?

pues si hace falta mucho mas para llegar a se bueno es el precio del éxito así que te invito a que sigas y compartas y ayudes en esta comunidad.

te paso la solución




Código:
Function Ojo(texto As String) As String

Dim Palabras As Integer
Dim PalabrasConA, PalabrasConB As Integer
Dim Char As String
Dim LastChar As String
Dim n As Integer
n = Len(texto)
    For x = 1 To n
    Char = Mid(texto, x, 1)
        If Char = " " Or x = n Then
        Palabras = Palabras + 1
        LastChar = Mid(texto, x, 1)
            Select Case LastChar
                Case "a", "A"
                PalabrasConA = PalabrasConA + 1
                Case "b", "B"
                PalabrasConB = PalabrasConB + 1
            End Select
        End If
   
Next
Ojo = "Se han contado " & Palabras & " en total, " & PalabrasConA & " terminan en a, " & PalabrasConB & " terminan con b"

End Function

Private Sub Command1_Click()
Label1.Caption = Ojo(Text1.Text)
End Sub
  #3 (permalink)  
Antiguo 20/03/2011, 16:07
 
Fecha de Ingreso: septiembre-2006
Mensajes: 4
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: ¿Cómo puedo hacer esto en VB8?

Gracias, Muchas gracias, ahora lo pruebo y ya le diré si tengo suerte.
Saludos,
Livan
  #4 (permalink)  
Antiguo 20/03/2011, 17:36
 
Fecha de Ingreso: septiembre-2006
Mensajes: 4
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: ¿Cómo puedo hacer esto en VB8?

Hola,
No he tenido suerte, no me funciona bien.
Primero me da un error en el código ya que Char no puede ser utilizado por ser un Keyword, le agregué un r en cada Char quedando Charr y lo solucioné pero no me devuelbe bien el test
Me detecta la cantidad de palabras pero no las que terminan en "a" o "b" como debería ser.
¿Alguna idea?
Muchas gracias por su tiempo y ayuda.
Livan
  #5 (permalink)  
Antiguo 21/03/2011, 03:11
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 8 meses
Puntos: 29
Respuesta: ¿Cómo puedo hacer esto en VB8?

En VB2008 sería algo así:

Código vb:
Ver original
  1. Imports VB = Microsoft.VisualBasic
  2. Public Class Form1
  3.  
  4.   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  5.     MsgBox("Hay " & Cuenta("e", "esta es la frase que se envia a la funcion") & " palabras acabadas en E")
  6.   End Sub
  7.  
  8.   Private Function Cuenta(ByVal QueAcabenEn As String, ByVal Texto As String) As Long
  9.     Dim Matriz(0) As String
  10.     Dim F As Long
  11.     Matriz = Split(Texto, " ")
  12.     For F = 0 To UBound(Matriz)
  13.       If VB.Right(Matriz(F), Len(QueAcabenEn)) = QueAcabenEn Then Cuenta = Cuenta + 1
  14.     Next
  15.   End Function
  16. End Class
Saludos
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #6 (permalink)  
Antiguo 21/03/2011, 07:21
 
Fecha de Ingreso: septiembre-2006
Mensajes: 4
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: ¿Cómo puedo hacer esto en VB8?

Gracias PKJ, Me funciona bien. Ahora lo adapto a mis necesidades. Gracias también a Gakex, hice algunos cambios en el código y ya me funciona.
Un saludo a todos,
Livan.

Etiquetas: vb
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 15:15.