33 lines
878 B
Plaintext
33 lines
878 B
Plaintext
REM Range extraction
|
|
DECLARE FUNCTION RangeExtract$ (RS$)
|
|
|
|
Range$ = " 0, 1, 2, 4, 6, 7, 8, 11, 12, 14, "
|
|
Range$ = Range$ + "15, 16, 17, 18, 19, 20, 21, 22, 23, 24, "
|
|
Range$ = Range$ + "25, 27, 28, 29, 30, 31, 32, 33, 35, 36, "
|
|
Range$ = Range$ + "37, 38, 39"
|
|
PRINT RangeExtract$(Range$)
|
|
END
|
|
|
|
FUNCTION RangeExtract$ (RS$)
|
|
TS$ = "": I% = 0
|
|
F% = VAL(RS$)
|
|
DO
|
|
I% = INSTR(I% + 1, RS$, ",")
|
|
T% = VAL(MID$(RS$, I% + 1))
|
|
IF T% = F% + R% + 1 THEN
|
|
R% = R% + 1
|
|
ELSE
|
|
SELECT CASE R%
|
|
CASE 0
|
|
TS$ = TS$ + LTRIM$(STR$(F%)) + ","
|
|
CASE 1
|
|
TS$ = TS$ + LTRIM$(STR$(F%)) + "," + LTRIM$(STR$(F% + R%)) + ","
|
|
CASE ELSE
|
|
TS$ = TS$ + LTRIM$(STR$(F%)) + "-" + LTRIM$(STR$(F% + R%)) + ","
|
|
END SELECT
|
|
R% = 0: F% = T%
|
|
END IF
|
|
LOOP WHILE I% <> 0
|
|
RangeExtract$ = LEFT$(TS$, LEN(TS$) - 1)
|
|
END FUNCTION
|