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

Вниз

Так сколько раз будет вычеслено условие цикла???   Найти похожие ветки 

 
Ega23 ©   (2007-03-06 13:50) [0]

Ловлю List index out of bounds.
Есть код

procedure TAlarmLogicsModule.dropAllAlarms;
var
 ai : IAlarmItem;
 i : Integer;
begin
 if get_count=0 then Exit;
 for i:= get_count-1 downto 0 do   // <- вот тут get_count каждый раз будет вызываться?
  begin
   ai := get_alarm(i);
   ai.drop;
   ai := nil;
  end;
end;

function TAlarmLogicsModule.get_count: integer;
begin
 Result := FList.Count;
end;


 
MBo ©   (2007-03-06 13:58) [1]

нет, только один раз при старте цикла


 
Ega23 ©   (2007-03-06 14:00) [2]


> нет, только один раз при старте цикла


Это точно? Никакими там опциями компиллятора не меняется?
(Просто если оно так, то тогда ясно где ошибку искать)


 
Думкин ©   (2007-03-06 14:01) [3]


> Ega23 ©   (06.03.07 14:00) [2]

Это обсуждалось на форуме неоднократно. Это язык Паскаль такой. Один раз.


 
Gero ©   (2007-03-06 14:02) [4]

Если кто не верит — все легко проверяется с помощью F7.


 
Ega23 ©   (2007-03-06 14:05) [5]


> Если кто не верит — все легко проверяется с помощью F7.


Трудно проверить. Надо сначала всё собрать, сымитировать кучу тревог, а уж потом...  :)

Ладно, всё теперь ясно, где "собака порылась". Всем спасибо!


 
tesseract ©   (2007-03-06 14:37) [6]


> Gero ©   (06.03.07 14:02) [4]
> Если кто не верит — все легко проверяется с помощью F7.


F5 на строку процедуру - и смотрим.


 
McSimm_   (2007-03-06 15:05) [7]

Не получилось представить себе логику, при которой инициализация переменной цикла срабатывала бы при каждом проходе. Хоть Паскаль, хоть Си.


 
Сотрудник деканата   (2007-03-06 16:37) [8]

if get_count=0 then Exit;

Это лишнее.


 
Германн ©   (2007-03-07 01:21) [9]


> Сотрудник деканата   (06.03.07 16:37) [8]
>
> if get_count=0 then Exit;
>
> Это лишнее.
>

Может это относится к разряду "обжёгшись на молоке, дуем на воду" :)


 
Skyle ©   (2007-03-07 06:47) [10]


> Германн ©   (07.03.07 01:21) [9]
> > Сотрудник деканата   (06.03.07 16:37) [8]
> >
> > if get_count=0 then Exit;
> >
> > Это лишнее.
> Может это относится к разряду "обжёгшись на молоке, дуем
> на воду" :)

Это также может относиться к работе в команде и невнимательности некоторых её членов :)


 
Ega23 (home)   (2007-03-07 08:12) [11]


> Skyle ©   (07.03.07 06:47) [10]


Ты знал, ты знал...   :)


 
boa_kaa ©   (2007-03-07 08:56) [12]


> McSimm_   (06.03.07 15:05) [7]
>
> Не получилось представить себе логику, при которой инициализация
> переменной цикла срабатывала бы при каждом проходе. Хоть
> Паскаль, хоть Си.

удаление повторов, например


 
Германн ©   (2007-03-07 12:58) [13]


> Skyle ©   (07.03.07 06:47) [10]

Я имел в виду уже обсуждавшуюся тут тему насчет использования в качестве переменной цикла беззнакового целого :)


 
_Слоник   (2007-03-07 17:24) [14]


> удаление повторов, например

а не проще пройтись с конца и удалять элемент с текущим индеском?


 
McSimm_   (2007-03-07 18:26) [15]


> удаление повторов, например

не представляю, все равно.

Наверное вы не поняли, не условие выхода из цикла, а инициализация переменной цикла на каждой итерации.
for I := A to B do
for (i = A; i <= B; i++)



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

Форум: "Прочее";
Текущий архив: 2007.04.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.044 c
15-1173528716
Тим
2007-03-10 15:11
2007.04.01
Java для Opera 9.10


3-1168429862
sapsi
2007-01-10 14:51
2007.04.01
Access and VPN


15-1173066915
Brc
2007-03-05 06:55
2007.04.01
Вирусы


2-1173613570
НОВИЧЕК2007
2007-03-11 14:46
2007.04.01
Работа программы на другом компьютере.


15-1173172002
ocean
2007-03-06 12:06
2007.04.01
Ретушь





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