我学delphi才1个月了,我看了资料delphi好象没有过滤相同字符串的函数
 比如说我有2个memo分别memo1,memo2  memo1的lines有3条记录
123456789
123456789
888999999
请问用什么方法来把这个记录的重复部分去掉啊
                    高手来看!

解决方案 »

  1.   

    在换行的时候就检查前面输入的行和新的有没有重复,Memo的值实际上保存在一个string()中
      

  2.   

    可以写个函数来处理:procedure DeleteSameLine(ALines: TStrings);
    var
      ATemp: TStrings;
      iLoop: Integer;
    begin
      ATemp := TStringList.Create;
      try
        for iLoop := 0 to ALines.Count - 1 do
          if ATemp.IndexOf(ALines.Strings[iLoop]) < 0 then
            ATemp.Add(ALines.Strings[iLoop]);
        ALines.Assign(ATemp);
      finally
        ATemp.Free;
      end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      DeleteSameLine(Memo1.Lines);
    end;
      

  3.   

    在增加字串的时候做一下这个工作
    var
      iTxt:string;
    ....  if Memo1.Lines.IndexOf(iTxt)<0 then
         Memo1.Lines.Add(iTxt);
      

  4.   

    procedure DeleteSameLine(ALines: TStrings);
    var
      ATemp: TStrings;
      iLoop: Integer;
    begin
      ATemp := TStringList.Create;
      try
        for iLoop := 0 to ALines.Count - 1 do
          if ATemp.IndexOf(ALines.Strings[iLoop]) < 0 then
            ATemp.Add(ALines.Strings[iLoop]);
        ALines.Assign(ATemp);
      finally
        ATemp.Free;
      end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      DeleteSameLine(Memo1.Lines);
    end;
      这个可以的!要是数据多就速度很慢 把我的机子卡死了;;
        有没有别的方法!!!
     小弟正在等待ing!!!
      

  5.   

    procedure DeleteSameLine(ALines: TStrings);
    var
      ATemp: TStrings;
      iLoop: Integer;
    begin
      ATemp := TStringList.Create;
      try
        for iLoop := 0 to ALines.Count - 1 do
        begin
          if ATemp.IndexOf(ALines.Strings[iLoop]) < 0 then
            ATemp.Add(ALines.Strings[iLoop]);
          Application.ProcessMessages;   //加上这一行试试
        end;
        ALines.Assign(ATemp);
      finally
        ATemp.Free;
      end;
    end;
      

  6.   

    jadeluo(秀峰)这个代码可以是可以的,我有点不明白,你的QQ是多少!指教小弟谢谢!!
      我的QQ是823981!!谢谢!!!
      

  7.   

    imho888() 的方法简单快速!正解