Word wrap: Difference between revisions

m
Line 1,191:
 
=={{header|Elena}}==
ELENA 3.4.x :
<lang elena>import extensions.;
import system'routines.;
import extensions'text.;
literalstring text =
"In olden times when wishing still helped one, there lived a king " +
"whose daughters were all beautiful, but the youngest was so beautiful " +
"that the sun itself, which has seen so much, was astonished whenever " +
"it shone in her face. Close by the king's castle lay a great dark " +
"forest, and under an old lime tree in the forest was a well, and when " +
"the day was very warm, the king's child went out into the forest and " +
"sat down by the side of the cool fountain, and when she was bored she " +
"took a golden ball, and threw it up on high and caught it, and this " +
"ball was her favorite plaything.".;
extension wrapOp
{
wrap(IntNumberint lineWidth)
[{
int currentWidth := 0.;
^ TokenEnumerator
.new(self);
.selectBy(:(word)
[{
currentWidth += word length.Length;
if (currentWidth > lineWidth)
[{
currentWidth := word length.Length + 1.;
^ newLine + word + " "
];}
[else
currentWidth += 1.{
currentWidth += 1;
^ word + " "
]}
];}
.summarize(String new StringWriter()).
]}
}
public program()
{
[
console .printLine(String new; write:StringWriter("-", length:72).);
console .printLine(text .wrap(72)).;
console .printLine(String new; write:StringWriter("-", length:80).);
console .printLine(text .wrap(80)).;
]}</lang>
{{out}}
<pre>
Anonymous user