elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 08:36  


Tema destacado: [Overclocking] Récords de overclock del foro

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (Moderador: [D4N93R])
| | | |-+  Separar palabras de una frase
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Separar palabras de una frase  (Leído 570 veces)
abreu20011

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Separar palabras de una frase
« en: 21 Noviembre 2011, 05:14 »

Saludos :)

Llevo un tiempo con este código que no logro que funcione "del todo"
Estoy buscando una forma en la que al escribir una frase, se separan las palabras una por una, aunque mi código ahora mismo sólo funciona con la primera palabra o la ultima de una frase u.u

Este es el código para sacar la primera palabra, que aunque no funciona como yo quisiera, funciona:

Código:
Public Function FirstWord(Byval frase As String) As String
Dim word As String = ""

For i As Integer = 1 To Len(frase)
'Analizamos desde la posición 1 hasta el maximo de la frase por un For buscando el espacio en blanco
'para saber que se comienza a escribir una segunda palabra, y por tanto, sabemos cual es la primera
If Mid(frase,i,1) = " " Then
word = Mid(frase, 1, (i - 1))
Return word
Exit for
End If
Next
If word = "" Then
'Si la variable "word" no tiene nada guardado (esto se debe a que solo hay una palabra en la frase)
'procedemos a guardar en word la frase entera
Return frase
End If
End Function

Y la función para la ultima palabra (que deberia ser la segunda, no la ultima u.u)
Básicamente hago lo mismo que en la primera para sacar la primera palabra, y a a partir de ahí, la "quito" para que lo vuelva analizar ya sin esa primera palabra:

Código:
Public Function SecondWord(ByVal frase As String) As String
Dim word As String = ""
Dim startSecondWord As Integer = 0

For i As Integer = 1 To Len(frase)
If Mid(frase, i, 1) = " " Then
startSecondWord = i + 1 'añadimos el +1 para que se salte el espacio y comienze por la 2º palabra directamente
frase = Mid(frase,startSecondWord) 'Guardamos la frase ya con la primera palabra quitada
End If
Next

For x As Integer = 1 To Len(frase)
If Mid(frase, x, 1) = " " Then
word = Mid(frase,1, (x - 1))
Return word
Exit For
End If
Next
If word = "" Then
'Si la variable wrod esta vacia, igual que en FirstWord devolvemos la frase entera, que ya ha sido cortada la primera
'palabra el primer For de esta función
return frase
End If
End Function

No se si es posible saber si un cadena llega a su fin, así no necesitaría buscar ese espacio, que es el mismo que me cusa el problema de que si solo hay una palabra en toda la frase, necesite del ultimo If Then para sacarla >.<

Si alguien me pudiera dar algún consejo se lo agradecería :)

Un saludo


En línea
abreu20011

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Separar palabras de una frase
« Respuesta #1 en: 21 Noviembre 2011, 05:28 »

Como sabia que iba a postear y encontrar la solución xD

Por si alguien tiene una duda similar, el framework pone a nuestra disposición una función que me acaba de enamorar: Split(http://msdn.microsoft.com/es-es/library/6x627e5f(v=vs.80).aspx)

Código:
Dim frase As String = "Split mola mucho"

Dim comando() As String = Split(frase)

Console.WriteLine("La primera palabra es: " & comando(0))
Console.WriteLine("La segunda palabra es: " & comando(1))
Console.WriteLine("La tercera palabra es: " & comando(2))

Esto no devuelve:

La primera palabra es: Split
La segunda palabra es: mola
La tercera palabra es: mucho

Un saludo a todos :)


« Última modificación: 21 Noviembre 2011, 06:02 por abreu20011 » En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ensambla la frase.
Desafíos - Wargames
Ferсhu 1 1,688 Último mensaje 31 Octubre 2007, 19:23
por Carloswaldo
separar palabras
PHP
zhynar_X 1 1,993 Último mensaje 7 Diciembre 2007, 00:07
por Azielito
Separar Palabras de un Text en Visual Basic
Programación Visual Basic
Topaz_34 2 4,684 Último mensaje 22 Octubre 2008, 03:37
por ssccaann43 ©
Separar palabras de arreglo
Programación C/C++
Black Demon 4 2,298 Último mensaje 25 Octubre 2008, 00:25
por dooque
Sustituir palabras en palabras...
Java
soser 4 1,459 Último mensaje 18 Julio 2011, 02:06
por Valkyr
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines