我有一个变量
var
  myvar: integer;然后想判断这个变量是否在一个给定的整数集合中,请问这个整数集合该怎么定义(在const区定义)。
比如这个集合是(4032,5011,5432,8963,9832)

解决方案 »

  1.   

    type
      TIntSet = set of integer;var
      MyIntSet :TIntSet;
    begin
      MyIntSet := [4032,5011,5432,8963,9832];
      if 4032 in MyIntSet then
      ......
    end;
      

  2.   

    判断在集合内,用in就行了
    if i in 集合 then
      

  3.   

    就是因为这样写不行啊,at most 256 elements啊
      

  4.   


    type
      TIntSet = set of integer;var
      MyIntSet :TIntSet;
      x:integer;
    begin
      MyIntSet := [4032,5011,5432,8963,9832];
      x:=888;
      MyIntSet := MyIntSet + [ x ] + [ 123 ];
      

  5.   

    先定义一个枚举类型
    TMyInt=(4032,5011,5432,8963,9832);
    TMyIntSet=set of  TMyInt;
      

  6.   

    定义为STING型 就可以了,用的时候再StrToInteger
      

  7.   


    set of string肯定也是不行的
      

  8.   

    用数组代替集合吧。
    implementation{$R *.nfm}
    var
      TIntArray : array [1..5] of integer =(4032,5011,5432,8963,9832);
    function IsInArray(A :integer):boolean;
    var
      i :integer;
    begin
      Result := false;
      for i := 1 to 5 do
      if A=TIntArray[i] then
      begin
        Result := True;
        break;
      end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      X :integer;
    begin
      X := 5012;
      if IsInArray(X) then
        showmessage('X is in Array!')
      else
        showmessage('X is not in Array!');
    end;end.