procedure DelSameRecord(var MemTable: TMemTableEh; CheckFields: string);  //TMemTableEh和table一样
  var FFieldList,FFieldValueList : TStringList;
      tempCheckFields,tempField,tempDifferValue: string;
      i : integer;
  begin
     FFieldList := TStringList.Create;
     FFieldValueList := TStringList.Create;
     FFieldList.CommaText := CheckFields;
     MemTable.First;
     while not MemTable.Eof do
     begin
        tempDifferValue := '';  //存储一个或多个字段的值组成的检查项
        for I := 0 to FFieldList.Count - 1 do
        begin
          tempDifferValue := tempDifferValue + MemTable.FieldByName(FFieldList.Strings[i]).AsString +',';
        end;        if FFieldValueList.IndexOf(tempDifferValue) >= 0 then //有重复值,则删除当前记录
        begin
          MemTable.Delete; //这里会有点问题,当重复值为最后一条时,指针会指向第一条记录                  
        end
        else
        begin
          FFieldValueList.Add(tempDifferValue);
          MemTable.Next;
        end;
     end;
     FFieldList.Free;
     FFieldValueList.Free;
  end;我就是想在MemTable中删除重复的记录,如果MemTable中只有两条记录,并且他们是相同的,MemTable.Delete删除后,MemTable.Eof为false,继续把第一条也删掉了,晕。这个怎么判断为最后一条?在MemTable.Delete;加入 if MemTable.bof也是false。