我从一个表里面查询出了重复的数据,然后把这些数据存入到了一个TStrings里面,第二步想用这些数据作为条件,在另一个表里进行下一步查询和结果累加。
但是现在TStrings里面的这些条件有重复的元素,造成了第二部查询的重复,最后造成了结果的误差。
现在想问一下如何在往TStrings存入数据时能够判断元素重复并且覆盖呢?
谢谢大家。

解决方案 »

  1.   

    摘自:http://www.cnblogs.com/keycode/archive/2010/10/25/1860436.html
    //避免重复值
    var
      List: TStringList;
    begin
      List := TStringList.Create;
     
      List.Add('aaa');
     
      List.Sorted := True;  //需要先指定排序
      List.Duplicates := dupIgnore;  //如有重复值则放弃
     
      List.Add('aaa');
     
      ShowMessage(List.Text);  //aaa
     
      //Duplicates 有3个可选值:
      //dupIgnore: 放弃;
      //dupAccept: 结束;
      //dupError: 提示错误.
     
      List.Free;
    end;
      

  2.   


    不能复制代码就上图了
    思路就是先判断 TStrings是否存在这个同名元素,存在就不添加,反之添加 
      

  3.   

    待添加的元素需要先从数据库里分步查询出来,我用了while do把查询出的元素分别添加到了tstrings里面。
    每一步都要先从头判断TStrings里面的每一个元素么?
      

  4.   

    List.Duplicates := dupIgnore;  //如有重复值则放弃   这个属性 确实很好
      

  5.   


    确实是的,每次添加都要和前面所有元素比较
    我相信List.Duplicates := dupIgnore;  这个属性 也是做这个工作,也许优化一些吧
      

  6.   

    同学,你这个着色和高亮style怎么设置的,俺从前试过好多次都不如意。
      

  7.   

    同学,你这个着色和高亮style怎么设置的,俺从前试过好多次都不如意。开帖, 放分就告诉你  嘿嘿
      

  8.   

    大神来提这么简单的问题 我还是答了吧  
    Color SpeedSetting 这里选择Twlight
      

  9.   

    只是选择了twlight而已,没自己个别修改过吗?
    speed setting那里我从前也全试过了,好像twlight跟你这个也有点不同。记得选那里如果要还原就难了,选defualt都不行,尤其是当前行高亮,奥泄
      

  10.   

    TStringList还有这种属性,长知识了