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

26 lines
562 B
Plaintext

PRINT rangeExpand$("-6,-3--1,3-5,7-11,14,15,17-20")
end
function rangeExpand$(range$)
[loop]
i = INSTR(range$, "-", i+1)
IF i THEN
j = i
WHILE MID$(range$,j-1,1) <> "," AND j <> 1
j = j - 1
wend
IF i > j then
IF MID$(range$,j,i-j) <> str$(i-j)+" " THEN
t$ = ""
FOR k = VAL(MID$(range$,j)) TO VAL(MID$(range$,i+1))-1
t$ = t$ + str$(k) + ","
NEXT k
range$ = LEFT$(range$,j-1) + t$ + MID$(range$,i+1)
i = j + LEN(t$) + 2
end if
end if
end if
if i <> 0 then goto [loop]
rangeExpand$ = range$
end function