Word wrap: Difference between revisions
Content added Content deleted
No edit summary |
(Added XPL0 example.) |
||
Line 6,015: | Line 6,015: | ||
were all beautiful, but the youngest was so beautiful that the sun itself, which |
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 |
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. |
|||
</pre> |
|||
=={{header|XPL0}}== |
|||
<lang XPL0>string 0; |
|||
proc WordWrap(Text, LineWidth); \Display Text string wrapped at LineWidth |
|||
char Text, LineWidth, Word, SpaceLeft, WordWidth, I; |
|||
[SpaceLeft:= 0; |
|||
loop [loop [if Text(0) = 0 then return; \skip whitespace (like CR) |
|||
if Text(0) > $20 then quit; |
|||
Text:= Text+1; |
|||
]; |
|||
Word:= Text; WordWidth:= 0; |
|||
while Word(WordWidth) > $20 do |
|||
WordWidth:= WordWidth+1; |
|||
Text:= Text + WordWidth; \move to Word terminator |
|||
if WordWidth+1 > SpaceLeft then |
|||
[CrLf(0); |
|||
for I:= 0 to WordWidth-1 do ChOut(0, Word(I)); |
|||
SpaceLeft:= LineWidth - WordWidth; |
|||
] |
|||
else [ChOut(0, ^ ); |
|||
for I:= 0 to WordWidth-1 do ChOut(0, Word(I)); |
|||
SpaceLeft:= SpaceLeft - WordWidth - 1; |
|||
]; |
|||
]; |
|||
]; |
|||
char Text; |
|||
[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. |
|||
"; |
|||
WordWrap(Text, 72); CrLf(0); |
|||
WordWrap(Text, 80); CrLf(0); |
|||
]</lang> |
|||
{{out}} |
|||
<pre> |
|||
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. |
|||
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 |
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 |
was a well, and when the day was very warm, the king's child went out into the |