Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
46
Task/Range-expansion/PureBasic/range-expansion.basic
Normal file
46
Task/Range-expansion/PureBasic/range-expansion.basic
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
Procedure rangeexpand(txt.s, List outputList())
|
||||
Protected rangesCount = CountString(txt, ",") + 1
|
||||
Protected subTxt.s, r, rangeMarker, rangeStart, rangeFinish, rangeIncrement, i
|
||||
|
||||
LastElement(outputList())
|
||||
For r = 1 To rangesCount
|
||||
subTxt = StringField(txt, r, ",")
|
||||
rangeMarker = FindString(subTxt, "-", 2)
|
||||
If rangeMarker
|
||||
rangeStart = Val(Mid(subTxt, 1, rangeMarker - 1))
|
||||
rangeFinish = Val(Mid(subTxt, rangeMarker + 1))
|
||||
|
||||
If rangeStart > rangeFinish
|
||||
rangeIncrement = -1
|
||||
Else
|
||||
rangeIncrement = 1
|
||||
EndIf
|
||||
|
||||
i = rangeStart - rangeIncrement
|
||||
Repeat
|
||||
i + rangeIncrement
|
||||
AddElement(outputList()): outputList() = i
|
||||
Until i = rangeFinish
|
||||
Else
|
||||
AddElement(outputList()): outputList() = Val(subTxt)
|
||||
EndIf
|
||||
Next
|
||||
EndProcedure
|
||||
|
||||
Procedure outputListValues(List values())
|
||||
Print("[ ")
|
||||
ForEach values()
|
||||
Print(Str(values()) + " ")
|
||||
Next
|
||||
PrintN("]")
|
||||
EndProcedure
|
||||
|
||||
If OpenConsole()
|
||||
NewList values()
|
||||
rangeexpand("-6,-3--1,3-5,7-11,14,15,17-20", values())
|
||||
outputListValues(values())
|
||||
|
||||
Print(#CRLF$ + #CRLF$ + "Press ENTER to exit")
|
||||
Input()
|
||||
CloseConsole()
|
||||
EndIf
|
||||
Loading…
Add table
Add a link
Reference in a new issue