Cortar lineas sin cortar palabras
Roberto Jimeno
jimeno@pc6.politicas.unam.mx
Thu, 4 Dec 1997 14:30:29 -0600
> Alguno de Uds. se ha encontrado en la necesidad de cortar un texto en
> lineas de no mas de X caracteres y sin cortar palabras?
> ...
> Ejemplo:
>
> $textodeentrada= "Esta es una oracion de prueba con varias palabras";
> $lmaxima=10;
>
> @compaginada = &compaginar($textodeentrada, $lmaxima);
>
> si imprimiese compaginada, deberia darme algo como esto:
>
> 1234567890
>
> Esta es una
> oracion de
> prueba con
> varias
> palabras
$long_max = 50 #Tam. Max. del reenglón.
$textote = "Un chorototote bien muy requete ...
...
...
... grandotote, pero al fin y al cabo finito";
# creo que la Sgte. linea deberia separar $textote en palabras.
@palabra = split /\s+/, $textote;
foreach @palabra {
$texto_corto = $texto;
$texto_largo = "$texto $palabra[0]";
if ($#texto_largo >= $long_max) {
print "$texto_corto\n";
$texto = "";
#El Sgte. comando debe mandar el control justo
#debajo del foreach sin hacer shift.
redo;
};
next;
};
print "$texto_largo\n";
Ando un poco confundido con la sintaxis, pero creo que en el
peor de los casos el algoritmo que acabo de describirte debe
funcionar, y estoy seguro de que debe haber varios mucho mejores.
Suerte.
--
-------------------------------------------------------------------------------
Roberto Jimeno. From The Cher-Speak Dictionary for the totally clueless:
wig (WIG), v. wiggin' or wigged 1.become irrational, freak out. 2. go postal.