Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

for i := ...


yyy111 ©   (2006-11-09 11:43:00) 

Есть цикл:

for i := 0 to MyTypeLength(myType) - 1 do

Возможно ли внутри цикла узнать что это последний элемент. При условии, что внутри цикла вызвать MyTypeLength(myType) повторно нельзя.

Единственный выход такой?
 Cnt := MyTypeLength(myType);
 for i := 0 to  Cnt - 1 do
   if i = cnt - 1 then ...  


_RusLAN   (2006-11-09 15:47:00) [1]

> Единственный выход такой?
> Cnt := MyTypeLength(myType);
> for i := 0 to  Cnt - 1 do
>   if i = cnt - 1 then ...


еще так можно:
for i := MyTypeLength(myType) - 1 dowto 0 do
  if i = 0 then ...


RWolf   (2006-11-09 12:13:00) [2]

Это верно, согласен.


Kolan   (2006-11-09 12:11:00) [3]

Замени это:
Cnt := MyTypeLength(myType);
for i := 0 to  Cnt - 1 do
  if i = cnt - 1 then
     ShowMessage('End')
   else
     ShowMessage('Still working'+IntToStr(I));  


C помощью

if MyTypeLength(myType)>0 then


Anatoly Podgoretsky   (2006-11-09 12:09:00) [4]

> yyy111  (09.11.2006 11:43:00)  [0]

Ну и чего тебе тогда не нравится, соответствует твоей задаче и твоему (а твоему ли) зверскому ограничению, ничем не обоснованному.


RWolf   (2006-11-09 12:06:00) [5]

а что else? операторов в тело цикла оно не прибавит. Условие сработает все равно только для одного значения i.


Kolan   (2006-11-09 12:00:00) [6]

> [7] RWolf ©   (09.11.06 11:55)
>
> > судя по коду это неизвестно...
>
> do без begin именно это и обозначает.

А else ?


RWolf   (2006-11-09 11:55:00) [7]


> судя по коду это неизвестно...

do без begin именно это и обозначает.


Kolan   (2006-11-09 11:54:00) [8]

> то, судя по коду, кроме if, в цикле ничего нет

судя по коду это неизвестно...


RWolf   (2006-11-09 11:51:00) [9]

Что до хорошего решения, то, судя по коду, кроме if, в цикле ничего нет. Если так - цикл ни к чему.
if MyTypeLength(myType)>0 then ...


Kolan   (2006-11-09 11:49:00) [10]

> Единственный выход такой?

Мож и не единственный, но нормальный...


yyy111   (2006-11-09 11:48:00) [11]

Нет, всё ок нормальный вариант, просто спросил может есть более хорошее решение. Спасибо!


Dmitrij_K   (2006-11-09 11:46:00) [12]

 Cnt := MyTypeLength(myType)-1;
for i := 0 to  Cnt do
  if i = cnt  then ...  

чем плох?


RWolf   (2006-11-09 11:46:00) [13]

а чем такой вариант не устраивает?


Наверх

Титульная страница Поиск, карта сайта Написать письмо