Visual Basic - Comparar largo de palabras en una cadena de texto

Life is soft - evento anual de software empresarial
   
Vista:

Comparar largo de palabras en una cadena de texto

Publicado por Jason (3 intervenciones) el 28/02/2015 06:44:08
Necesito un código que me ayude comparar las palabras de una frase dada y me indique cual es la mas larga y cual la mas corta!! por su ayuda muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Comparar largo de palabras en una cadena de texto

Publicado por Juan Gilberto (277 intervenciones) el 28/02/2015 19:17:32
En VB6
Te sugiero utilizar la funcion SPLIT usando el espacio como delimitador
Te regresa un vector con todas las palabras de la frase
Asi facilmente, usando un loop, puedes encontrar la palabra mas corta y la mas larga
Probablemente tendras que eliminar los caracteres de puntuacion como el punto, coma, punto y coma, guiones, etc., para esto puedes usar la funcion REPLACE
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Comparar largo de palabras en una cadena de texto

Publicado por Jason (3 intervenciones) el 28/02/2015 19:52:50
Muchas gracias, el split ya lo tenia contemplado pero no se como extraer cada palabra para compararlas, si me pudieras asesorar en como hay que hacerlo te lo agradeceria muchisimoo!!! esto es lo que tengo nada mas:

Sub splitfrase()


Dim frase As String
Dim comando() As String

frase = InputBox("Escriba una frase por favor")
comando() = Split(frase)




End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Megamind

Comparar largo de palabras en una cadena de texto

Publicado por Megamind (121 intervenciones) el 28/02/2015 20:29:43
Muestra en un TextBox, las cadenas separadas y la longitud de cada una de ellas

Si en lugar de mandar el resultado a un TextBox, lo mandásemos a una grilla o a un ListView
Se podría ordenar por la columna donde se añada el LenCadena

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub splitfrase()
  Dim Cuenta As Integer
  Dim LenCadena As Integer
  Dim t() As String
 
  frase = InputBox("Escriba una frase por favor")
 
  t = Split(frase, " ")
  Valor = UBound(t)
 
For Cuenta = 0 To Valor
   t(Cuenta) = Replace(t(Cuenta), ",", "")
   t(Cuenta) = Replace(t(Cuenta), ".", "")
 
   If LTrim(RTrim(t(Cuenta))) <> "" Then
   LenCadena = Len(t(Cuenta))
   Text1.Text = Text1.Text & LenCadena & "  " & t(Cuenta) & vbCrLf
   End If
Next
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Megamind

Comparar largo de palabras en una cadena de texto

Publicado por Megamind (121 intervenciones) el 28/02/2015 21:24:13
Si insertamos esto antes del End Sub.
Mostrara un mensaje con la cadena mas larga y la mas corta

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Max = 0
For x = 0 To valor
 If Len(t(x)) > Max Then
  Max = Len(t(x))
  C1 = t(x)
 End If
Next
 
  Min = Max
For x = 0 To valor
 If Len(t(x)) < Min Then
  Min = Len(t(x))
  C2 = t(x)
 End If
Next
 
 MsgBox "La cadena  mas larga es: " & """" & C1 & """" & " con " & Max & " caracteres" & vbCrLf & _
                 "La cadena mas corta es: " & """" & C2 & """" & " con " & Min & " caracteres"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Comparar largo de palabras en una cadena de texto

Publicado por jason (3 intervenciones) el 01/03/2015 08:09:18
Excelente Respuesta y el codigo funciona de maravilla, muchas gracias a todos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar