24 lines
637 B
Plaintext
24 lines
637 B
Plaintext
PRINT FNrangeexpand("-6,-3--1,3-5,7-11,14,15,17-20")
|
|
END
|
|
|
|
DEF FNrangeexpand(r$)
|
|
LOCAL i%, j%, k%, t$
|
|
REPEAT
|
|
i% = INSTR(r$, "-", i%+1)
|
|
IF i% THEN
|
|
j% = i%
|
|
WHILE MID$(r$,j%-1,1)<>"," AND j%<>1
|
|
j% -= 1
|
|
ENDWHILE
|
|
IF i%>j% IF MID$(r$,j%,i%-j%)<>STRING$(i%-j%," ") THEN
|
|
t$ = ""
|
|
FOR k% = VALMID$(r$,j%) TO VALMID$(r$,i%+1)-1
|
|
t$ += STR$(k%) + ","
|
|
NEXT
|
|
r$ = LEFT$(r$,j%-1) + t$ + MID$(r$,i%+1)
|
|
i% = j% + LEN(t$) + 2
|
|
ENDIF
|
|
ENDIF
|
|
UNTIL i% = 0
|
|
= r$
|