Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
46
Task/Word-wrap/PureBasic/word-wrap.basic
Normal file
46
Task/Word-wrap/PureBasic/word-wrap.basic
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
DataSection
|
||||
Data.s "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."
|
||||
EndDataSection
|
||||
|
||||
Procedure.i ww_pos(txt$,l.i)
|
||||
While Mid(txt$,l,1)<>Chr(32) And l>0 And Len(txt$)>l : l-1 : Wend
|
||||
If l>0 : ProcedureReturn l : Else : ProcedureReturn Len(Trim(txt$)) : EndIf
|
||||
EndProcedure
|
||||
|
||||
Procedure WriteLine(txt$,ls.i)
|
||||
Shared d$,lw
|
||||
Select LCase(d$)
|
||||
Case "l" : PrintN(Mid(txt$,1,ls))
|
||||
Case "r" : PrintN(RSet(Trim(Mid(txt$,1,ls)),lw,Chr(32)))
|
||||
EndSelect
|
||||
EndProcedure
|
||||
|
||||
Procedure main(txt$,lw.i)
|
||||
If Len(txt$)
|
||||
p=ww_pos(txt$,lw) : WriteLine(txt$,p) : ProcedureReturn main(LTrim(Right(txt$,Len(txt$)-p)),lw)
|
||||
EndIf
|
||||
EndProcedure
|
||||
|
||||
Procedure.i MaxWordLen(txt$)
|
||||
For i=1 To CountString(txt$,Chr(32))+1
|
||||
wrd$=LTrim(StringField(txt$,i,Chr(32)))
|
||||
wrdl=Len(wrd$)+1 : If wrdl>l : l=wrdl : EndIf
|
||||
Next
|
||||
ProcedureReturn l
|
||||
EndProcedure
|
||||
|
||||
OpenConsole()
|
||||
Read.s t$
|
||||
Print("Input line width: ") : lw=Val(Input()) : minL=MaxWordLen(t$)
|
||||
If lw<minL : lw=minL : PrintN("Min. line width "+Str(lw-1)) : EndIf
|
||||
Print("Input direction l:left r:rigth ")
|
||||
Repeat : d$=Inkey() : Delay(50) : Until FindString("lr",d$,1,#PB_String_NoCase) : PrintN(d$+#CRLF$)
|
||||
main(t$,lw) : Input()
|
||||
Loading…
Add table
Add a link
Reference in a new issue