RosettaCodeData/Task/Range-expansion/Liberty-BASIC/range-expansion.basic

24 lines
781 B
Plaintext

print ExpandRange$( "-6,-3--1,3-5,7-11,14,15,17-20")
end
function ExpandRange$( compressed$)
for i = 1 to ItemCount( compressed$, ",")
item$ = word$( compressed$, i, ",")
dash = instr( item$, "-", 2) 'dash that is not the first character, is a separator
if dash then
for k = val( left$( item$, dash - 1)) to val( mid$( item$, dash + 1))
ExpandRange$ = ExpandRange$ + str$( k) + ","
next k
else
ExpandRange$ = ExpandRange$ + item$ + ","
end if
next i
ExpandRange$ = left$( ExpandRange$, len( ExpandRange$) - 1)
end function
function ItemCount( list$, separator$)
while word$(list$, ItemCount + 1, separator$) <> ""
ItemCount = ItemCount + 1
wend
end function