Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];

Вниз

Работа с TObjectList   Найти похожие ветки 

 
TW   (2005-06-25 14:24) [0]

Можете объяснить почему происходить ошибка "End of Bound(3)" припопытке удаления из листа данных если лист был создан так:
MyList:=TObjectList.Create(True);
.......
for i:=0 to MyList.Count-1 do
MyList.Delete(i);
Первые 2 цикла проходят нормально!


 
Гаврила ©   (2005-06-25 14:28) [1]

for i:=MyList.Count-1 downto 0 do


 
Reindeer Moss Eater ©   (2005-06-25 14:30) [2]

MyList.Clear;


 
Reindeer Moss Eater ©   (2005-06-25 14:33) [3]

Первые 2 цикла проходят нормально!
Не два, а три цикла.
А на четвертом индексная переменная цикла выходит за границы списка.


 
Defunct ©   (2005-06-25 16:44) [4]

>> Первые 2 цикла проходят нормально!
> Не два, а три цикла.

Рябята вы о чем? В первом же цикле индексация корректируется. см. метод delete TList.


 
Reindeer Moss Eater ©   (2005-06-25 17:42) [5]

Можете объяснить почему происходить ошибка "End of Bound(3)"

Итого, было три успешных итерации.
i=0,i=1,i=2.
При i=3 возникла ошибка.


 
Alexander Panov ©   (2005-06-25 20:05) [6]

Defunct ©   (25.06.05 16:44) [4]
В первом же цикле индексация корректируется


Это о чем?


 
default ©   (2005-06-25 20:10) [7]

for i:=0 to MyList.Count-1 do
MyList.Delete(0);


 
default ©   (2005-06-25 20:11) [8]

хотя [1] быстрее будет


 
Defunct ©   (2005-06-26 06:16) [9]

> Alexander Panov

А то не видно.
О том, что слово цикл здесь было неуместно. См. сабжевый вопрос, может попробуешь там найти 2 или тем более 3 "цикла".


 
Alexander Panov ©   (2005-06-26 12:18) [10]

Defunct ©   (26.06.05 6:16) [9]

Твое высказываниее абсолютно непонятно.

Вот это:
Defunct ©   (25.06.05 16:44) [4]
Рябята вы о чем? В первом же цикле индексация корректируется. см. метод delete TList.


Какая индексация корректируется? Как с этим связан метод Delete?

Можно более связно свои мысли выражать?


 
Defunct ©   (2005-06-29 04:56) [11]

> Alexander Panov

разбираю по словам ;>

>> В первом же цикле
В сабжевом вопросе цикл был всего один.

>>индексация корректируется
Индексация элементов в TObjectList корректируется автоматически методом delete (который используется в этом первом и последнем цикле)

>>см. метод delete TList.
Потому что метод Delete в TObjectList наследуется без изменений от TList.

помоему там было все довольно связно.


 
boalse ©   (2005-06-29 06:09) [12]

Допустим, изначально MyList.Count=10, тогда, встречая строчку:
for i:=0 to MyList.Count-1 do
Цикл выполняется ровно 10 раз, не больше не меньше. Да, значение Count корректируется, происходит переиндексация, но ведь верхняя граница списка уменьшается от 9 до 0, а цикл выполнится ровно 10 раз, поэтому неминуемо произойдёт обращение к несуществующему элементу. Предлагаю так:
I:=0
while MyList.Count>0 do delete(0);

Но clear лучше.



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

Форум: "Основная";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.055 c
10-1096828319
Wolverrum
2004-10-03 22:31
2005.07.18
COM и консольный режим


1-1119961554
Mishenka
2005-06-28 16:25
2005.07.18
Как в ListView CheckBoxes отловить событие установки галки?


3-1117799308
_alex_niv_
2005-06-03 15:48
2005.07.18
Подключение к ORACLE


14-1119440642
Kerk
2005-06-22 15:44
2005.07.18
Как попасть в интернет?


1-1120032563
mefres
2005-06-29 12:09
2005.07.18
перевод числовых денег в строковые





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский