• Miércoles 15 de Mayo de 2024, 00:25

Autor Tema:  Controlar Frase  (Leído 1041 veces)

gabrielz1

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Controlar Frase
« en: Viernes 23 de Diciembre de 2005, 18:10 »
0
hola amigos de c/c++ nose si me pueden ayudar.
Lo que necesito es saber como puedo controlar una frase.

Bueno por ejemplo tengo una cadena de caracteres como la siguiente.

cadena = "hola amigos de c/c++ nesesito que esta frase se reparta en diferentes lineas";

en la cadena tenemos 76 caracteres. lo que necesito es queesa cadena se reparta en tres filas de 24 caracteres.

hola amigos de c/c++
nesesito que esta frase
se reparta en diferentes
lineas

si nos damos cuenta las lineas son 4 puesto que las palabras no se cortaron y se agregaron caracteres nulos y la palabra entera como no cabia en la linea de 24 se tubo que pasar a la siguiente linea.

Bueno amigos no se si me pueden ayudar en esto.
les agradesco anticipadamente.

NOVA_BUILDER

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Re: Controlar Frase
« Respuesta #1 en: Jueves 16 de Febrero de 2006, 09:25 »
0
Hola, mira realmente esta facíl si sabes hacer lo siguiente:


Sabes tomar caracter por caracter de una cadena??


If(answere= true)
{
/*Observa que para lo que requieres, el caracter #25 siempre debe ser NULL o vacio, espacio, etc, entonces valida cada 25 caracteres que sea vacio, de lo contrario del caracter 25 al 1 identifica el primer espacio, toma la posicion y alli esta la primera línea, la segunda de la misma forma, me explico.
ejemplo:


cadena="esta casa es de colo rosado y tejado color rojo."  =48 char;

Me atrevere a poner código sin probar, pero es una idea....

pos=25;// cantidad de caracteres
tam=50;//Numero de lineas deseadas
lineas[tam];
linea=0;
while (pos<Lenght(cadena))
{
line[linea]="";
        if (Lenght(cadena)<25)
        {
         Line[0]=cadena;
         }
          else
          {
            if (cadena[pos]=="" || cadena[pos]==" ")
            {
               for (int p=pos-25;p<pos;p++)
              {
                line[linea]=line[linea]+cadena[p];
               }
             }
                 else
                 {
                  for (int p=pos;p>pos-26;pos--)
                   {
                     if (cadena[p]==" ")
                       {
                       ExitFor;
                        }
                   }
                       for (int a=0;a<p+1;a++)
                       {
                        line[linea]=line[linea]+cadena[a];/////esto llena la linea cuando son mas de 24 caracteres y debe tomar la palabra completa.
                        }
                  pos=a;                    
                 }

linea++;
pos+=25;
               for (int p=pos-25;p<pos;p++)
              {
                line[linea]=line[linea]+cadena[p];
               }

}

mas o menos quedaría así....

Espero haberte ayudado.


Saludos.

*/



}
else
{
ShowMessage("SORRY!!!!");
}
EL QUE LEE SOBRE VB...ES PORQUE ESTA APRENDIENDO A LEER.