Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.12;
Скачать: CL | DM;

Вниз

удаление строк из списка   Найти похожие ветки 

 
V0va   (2006-01-24 12:19) [0]

мне нужно удалить из списка некоторые строки соответствующие моему условию. Как наиболее рационально реализовать код удаления, потому что мой код ужасно примитивный. Поделитесь пожалста.
Вот он

procedure DeleteThis(const ID: Word);
var aItem    : pItem;
   i, j, k, u : Word;
begin
 j := FList.Count;
 for i := 0 to j -1 do
 begin
   u := FList.Count;

   for k := 0 to u -1 do
   begin
     aItem := FList.Items[k];
     if (aItem.ItsID = ID) then
     begin
       FList.Remove(aItem);
       Break;
     end;
   end;

 end;
end;


 
ЮЮ ©   (2006-01-24 12:31) [1]

а зачем цикл в цикле? Неужели после удаления элемента при первом прорходе его стоит искать ещё FList.Count - 1 раз?


 
V0va   (2006-01-24 12:33) [2]

фишка в том, что там их много соответсвующих этому же условию, потому приходится искать до победного, а вот так вот если сделаешь, то сами знаете что будет "List index out of bounds" ;(

  for k := 0 to FList.Count -1 do
  begin
    aItem := FList.Items[k];
    if (aItem.ItsID = ID) then FList.Remove(aItem);
  end;


 
Ega23 ©   (2006-01-24 13:15) [3]

Используй не for, а while ибудет тебе щщастье.


 
MBo ©   (2006-01-24 13:20) [4]

for k := FList.Count -1 downto 0 do


 
Aleks ©   (2006-01-24 13:38) [5]

)


 
V0va   (2006-01-24 13:56) [6]


> for k := FList.Count -1 downto 0 do

дада)) туплю туплю))



Страницы: 1 вся ветка

Текущий архив: 2006.02.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.071 c
2-1137862988
JEK2
2006-01-21 20:03
2006.02.12
Распечатка документа с картинками


15-1138209382
Хинт
2006-01-25 20:16
2006.02.12
Почему бы и нет?


8-1125394696
rentgen
2005-08-30 13:38
2006.02.12
Можно ли как-то "склеить" "массив" из TBitmap в AVI ???


3-1134382092
Rater
2005-12-12 13:08
2006.02.12
Агрегатные поля в TDBF работаю? (+ походу глюки в TDBF...)


1-1137435300
Tramp
2006-01-16 21:15
2006.02.12
Проблема формирования отчета для последующей печати...