好象你的题不是这个意思。如果你只是想判断某个区间的数是否已用过的话,可以采用两种方法。
一是仍然用TStringList串表。用过的数加入进去,然后每次判断是否有此数和符合你的区间限制。
if (V>=1000) and (V<=1111) and (sl.IndexOf(IntToStr(V))<0) then
该数合法并未用过...
每次用过一个数就执行
sl.Add(IntToStr(V));
二是定认一个数组array(任意区间,但浪费次源)或位组TBits(必须从0开始的区间,但节省资源)
var
ba: array[1000..1111] of boolean;
使用V=1050
ba[V] := True;
判断是否用效:
if (V>=1000) and (V<=1111) then
if not ba[V] then
该数合法并未用过...