因为用循环来检测我感觉没有一点技术含量,各位高手有没有更好的办法?

解决方案 »

  1.   

    数值有现成的:InRange(const AValue, AMin, AMax: Double):Boolean;其中:
        AMin对于数组可以这样表示MinValue(YourArray)
        AMax对于数组可以这样表示MaxValue(YourArray)字符串你可以将就MATH单元中的上述几个函数略加修改就OK了
      

  2.   

    var 
      p:pchar;
      YourArray:array[low..high] of char;
    begin
      p:=@YourArray;
      if pos('字符',strpas(p)) > 0 then 存在;
    end;
      

  3.   

    我刚才试了一下InRange函数出现下列问题,举例如下:
    var va:array[1..8] of integer;
    begin
    va[1]:=3;
    va[2]:=35;
    va[3]:=34;
    va[4]:=36;
    va[5]:=39;
    va[6]:=40;
    va[7]:=23;
    va[8]:=0;
    if inrange(36,va[1],va[8]) then showmessage('ok');
    但是明明36就包含在里边可是怎么没有显示ok?
      

  4.   

    用pos函数可能达到你的要求的吧~
      

  5.   

    //但是明明36就包含在里边可是怎么没有显示ok?你有两个错误
    1、由于va:array[1..8] of integer; 所以
       MinIntValue、MaxIntValue2、inrange(36,va[1],va[8]) 改为
       inrange(36,MinIntValue(va), MaxIntValue(va));或者
    把va:array[1..8] of integer改为va:array[1..8] of Double;
    用MinValue(VA)和 MaxVlue(VA)
      

  6.   

    改了一下:var 
      p:pchar;
      YourArray:array[low..high] of char;//如[0..5]
    begin
       ...//YourArray赋值
      p:=@YourArray;//取数组入口地址
      if pos('子串',strpas(p)) > 0 then 子串存在;
    end;
      

  7.   

    我的是整型数,能不能不用将整型转换成字符型?pos函数好像是只能用字符串
      

  8.   

    inrange函数中的是一个连续的数的范围,不能用一些离散的值