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