Bueno cree una nueva función que no corta las palabras, pero sigue teniendo 1 pequeño defecto
o bueno 2.
Lo que hago:
Fase 1
1. Con un For recorro caracter por caracter, lo comparo con if si es un espacio, si es espacio agrego la palabra a una lista y reseteo la variable q almacena los caracteres, si no agregago el caracter a una variable que contiene la palabra.
Fase 2
2. Con un for recorro la lista y agrego la palabra a un String al llegar al maximo de palabras agrego otra linea.
Si hay alguien en el foro que me de una sugerencia para hacerlo mejor, se agradece mucho. Lo que busco es una forma de justificar el texto, no puedo usar gravity.
Problemas que tiene esta funcion:
Fase 1: Si la cadena que paso no finaliza en ESPACIO, no agrega la ultima palabra.
En teoría este error lo "Soluciono agregando un ESPACIO al final de la cadena", que eso hago y funciona, pero no creo que sea una buena solucion :-/.
Fase 2:
No lee las ultimas palabras si el grupo final es menor al numero de palabras solicitado.
Sub parrafo(cadenax As String, num_palabras As Int) As List
Dim lista2 As List
Dim palabra As String
cadenax=cadenax&" "
lista2.Initialize
For i= 0 To cadenax.Length -1
If cadenax.CharAt(i)=" " Or i=lista2.Size -1 Then
lista2.Add(palabra)
palabra=""
Else
palabra=palabra&cadenax.CharAt(i)
End If
Next
For i=0 To lista2.Size -1
Log(lista2.Get(i))
Next
Dim cadena1 As String
Dim contador As Int
Dim lista3 As List
lista3.Initialize
Log("Nuevo parrafo")
For i=0 To lista2.Size -1
cadena1=cadena1&lista2.Get(i)&" "
contador=contador+1
If contador=num_palabras Or i=lista2.Size -1 Then
lista3.Add(cadena1)
Log(cadena1)
contador=0
cadena1=""
End If
Next
lista2.Clear
Return lista3
End Sub