range$ = " 0, 1, 2, 4, 6, 7, 8, 11, 12, 14, " + \ \ "15, 16, 17, 18, 19, 20, 21, 22, 23, 24, " + \ \ "25, 27, 28, 29, 30, 31, 32, 33, 35, 36, " + \ \ "37, 38, 39" PRINT FNrangeextract(range$) END DEF FNrangeextract(r$) LOCAL f%, i%, r%, t%, t$ f% = VAL(r$) REPEAT i% = INSTR(r$, ",", i%+1) t% = VALMID$(r$, i%+1) IF t% = f% + r% + 1 THEN r% += 1 ELSE CASE r% OF WHEN 0: t$ += STR$(f%) + "," WHEN 1: t$ += STR$(f%) + "," + STR$(f% + r%) + "," OTHERWISE: t$ += STR$(f%) + "-" + STR$(f% + r%) + "," ENDCASE r% = 0 f% = t% ENDIF UNTIL i% = 0 = LEFT$(t$)