Visual Basic - Separar en palabras todo el texto de un textbox

Life is soft - evento anual de software empresarial
 
Vista:

Separar en palabras todo el texto de un textbox

Publicado por Alvaro (10 intervenciones) el 10/11/2004 15:11:12
Quier saber una funcion que coja todo el texto escrito en 1 texbos y meta por palabras todo en 1 listbox, 1 item cada palabra. sabeis como??

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

RE:aqui tienes la respuesta

Publicado por Mauren (24 intervenciones) el 10/11/2004 16:14:04
esta funcion hace exactamente lo que tu quieres y la hice especialmente para solucionar tu problema espero que te sirva:

Sub separar()
Dim s, s1, l As String
Dim i As Integer
s = Text3.Text
For i = 1 To Len(s) + 1
l = Mid(Mid(s, 1, i), i, 1)
If ((l = " ") Or (l = "")) Then
List1.AddItem s1
s1 = ""
Else
s1 = s1 + l
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

RE:aqui tienes la respuesta

Publicado por alvaro (10 intervenciones) el 10/11/2004 17:06:58
muchas gracias !!!!
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

RE:aqui tienes la respuesta

Publicado por alvaro (10 intervenciones) el 10/11/2004 17:23:47
No se si te llego el mail, pero ahora lo q necesito es coger cada una de las palabras del listbox y meter en otro listbox aquellas que sean mayores de 3 letras. me podrias ayudar?? gracias!!!
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

RE:aqui tienes la respuesta #2

Publicado por Mauren (24 intervenciones) el 10/11/2004 20:05:44
Solo tienes que hacer un ciclo y recorrer el list item por item con la propiedad list1.list(#), eso te devuelve la palabra que haya en el indice que tu coloques y solo tienes que preguntar por el len de la palabra por ej si len(palabra)>3 entonces lo metes en la otra lista(list2.additem cadena), si no te queda claro me puedes escribir, con mucho gusto te ayudo
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

RE:aqui tienes la respuesta

Publicado por Mauren (24 intervenciones) el 10/11/2004 20:13:34
Tambien si quieres de la cadena grande meter de una vez en el list las que sean mayores a 3 letras es el mismo codigo pero con una modificacion pequeñita, ahi te va:

Sub separar()
Dim s, s1, l As String
s = Text3.Text
Dim i As Integer
For i = 1 To Len(s) + 1
l = Mid(Mid(s, 1, i), i, 1)
If ((l = " ") Or (l = "")) Then
If (len(s1)>3)then
List1.AddItem s1
endif
s1 = ""
Else
s1 = s1 + l
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

RE:aqui tienes la respuesta

Publicado por alvaro (10 intervenciones) el 10/11/2004 21:55:44
Muchas gracias de verdad, todo 1 crack. gracias
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

RE:aqui tienes la respuesta

Publicado por alvaro (10 intervenciones) el 10/11/2004 22:14:36
hola. pues el codigo este largo que debe hacerlo todo de una vez, no lo hace, me escribe todas las palabras contando las menores de 3 letras, no se
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

RE:si sirve

Publicado por Mauren (24 intervenciones) el 11/11/2004 18:07:50
Este codigo hacer directamente lo que tu quieres y a mi si me sirve:

Sub separar()
Dim s, s1, l As String
s = Text3.Text
Dim i As Integer
For i = 1 To Len(s) + 1
l = Mid(Mid(s, 1, i), i, 1)
If ((l = " ") Or (l = "")) Then
If (Len(s1) > 3) Then
List1.AddItem s1
End If
s1 = ""
Else
s1 = s1 + l
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
sin imagen de perfil

RE:si sirve

Publicado por kdlc (226 intervenciones) el 12/11/2004 00:09:02
por que no usan el split??

Private Sub Command1_Click()
Dim Palabras() As String
Dim Indice As Integer

Palabras() = Split("VIVA LA REINA!")

For Indice = 0 To UBound(Palabras)
If Len(Palabras(Indice)) >= 3 Then
List1.AddItem Palabras(Indice)
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

RE:si sirve

Publicado por alvaro (10 intervenciones) el 12/11/2004 13:39:11
El remate del tomate, es q me reconozca si hay varias lineas en el texbox,. a ver si me ayudais, tanto con split como la funcion anterior funciona bien, pero sin lo de varias lineas, vamos q cdo haya un return y empiece otra linea tb la reconozca. gracias
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
sin imagen de perfil

SPLIT()

Publicado por kdlc (226 intervenciones) el 13/11/2004 00:28:40
Bueno, lo he probao el split con un TextBox (MULTILINE) y si me reconoce varias lineas ... haz la prueba y me cuentas como va.
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