Главная страница
    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.45 MB
Время: 0.043 c
2-1137927805
Compton's G
2006-01-22 14:03
2006.02.12
Как создать массив TBitmap


6-1131363336
vladraven
2005-11-07 14:35
2006.02.12
В случае закрытого порта выдает ошибку ( connection timed out )


11-1119419512
midas2k5
2005-06-22 09:51
2006.02.12
StatusBar


5-1124814681
TStas
2005-08-23 20:31
2006.02.12
Почему нет глюка?


15-1138081621
DimonS
2006-01-24 08:47
2006.02.12
Подскажите, кто знает.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский