if (TableHdqk.fieldbyname('Sb').asstring='0.00382500')or
   (TableHdqk.fieldbyname('Sb').asstring='0.00345000')or
   (TableHdqk.fieldbyname('Sb').asstring='0.00337500')or
   (TableHdqk.fieldbyname('Sb').asstring='0.00300000') then....
显得很繁琐.
请教简单的写法.

解决方案 »

  1.   

    if Pos(',' +  TableHdqk.fieldbyname('Sb').AsString + ',',
      ',0.00382500,0.00345000,0.00337500,0.00300000,') > 0 then....
      

  2.   

    if (TableHdqk.fieldbyname('Sb').asstring) in ....
      

  3.   

    如果是SB数值型的呢?
    outer2000(天外流星) 的方法更好。
      

  4.   

    如果是SB数值型的呢?
    outer2000(天外流星) 的方法更好。
      

  5.   

    我也觉得outer2000(天外流星) 的方法较好!如果我写我也会这么写的:)
    不过 zswang(伴水)的方法倒很有创意!想必是经验老到的高手!
      

  6.   

    with TableHdqk.fieldbyname('Sb') do
    begin
        if (
            (asstring='0.00382500') or
            (asstring='0.00345000') or
            (asstring='0.00337500') or
            (asstring='0.00300000') 
        ) then
        begin
            ....
        ned;
    end;
    end;
      

  7.   

    if (TableHdqk.fieldbyname('Sb').asstring) in ....
      

  8.   

    an ordinal O and a set S, O in S is True just in case O is a member of S.伴水真是高深莫测
    奈软的写法在速度上有所上升UP
      

  9.   

    in操作是对有序数来的。0.XXX不行
      

  10.   

    if (TableHdqk.fieldbyname('Sb').asstring) in 后面怎么写?见笑
      

  11.   

    I: Integer;
    if I in [1, 2] CH1: Char;if CH1 in ['a', 'b'] 
      

  12.   

    var Str:String;Str:=TableHdqk.fieldbyname('Sb').asstring;
    if ((Str='0.00382500') or (Str='0.00345000') or (Str='0.00337500') or (Str='0.00300000')) then
    ...其实这就很好了!当年我在写WEB程序获得,修改,删除在线名单时也用过zswang(伴水)的方法,但在这里不同,因为涉及到字符串的拆分运算,运行效率不高!不过这是中国程序员的特色!
      

  13.   

    var
      s:String;
    s:=(TableHdqk.fieldbyname('Sb').asstring; 
    if s in ['0.00382500','0.00345000','0.00337500'),'0.00300000'] then
    begin
      ....
    end;
      

  14.   

    楼上的,多少人说了,你还这么写,s 是 string 型的,不能使用集合的!
    fainting...
      

  15.   

    var
      i:real;
    i:=Format('0.00000000f%',[TableHdqk.fieldbyname('Sb').asfloat]); 
    if s in [0.00382500,0.00345000,0.00337500,0.00300000] then
    begin
      ....
    end;
      

  16.   

    string不能使用集合的!
    不过我觉得搂主的写法也可以,而且比较直观!不过如果非要所谓的简洁写法的话,
    zswang(伴水清清)(专家门诊清洁工)的写法比较好!
      

  17.   

    我试试,改一改:
    var  s:String;
    s:=(TableHdqk.fieldbyname('Sb').asstring; 
    if (s ='0.00382500') or (s='0.00345000') or (s='0.00337500') or (s='0.00300000') then
    begin
      ....
    end;
      

  18.   

    with TableHdqk.fieldbyname('Sb') do
      if (asstring='0.00382500') or
         (asstring='0.00345000') or
         (asstring='0.00337500') or
         (asstring='0.00300000') then
        begin
            ....
        end;