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

Вниз

for i := ...   Найти похожие ветки 

 
yyy111   (2006-11-09 11:43) [0]

Есть цикл:

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 ...  


 
Dmitrij_K   (2006-11-09 11:46) [1]

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

чем плох?


 
RWolf ©   (2006-11-09 11:46) [2]

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


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

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


 
Kolan ©   (2006-11-09 11:49) [4]

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

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


 
RWolf ©   (2006-11-09 11:51) [5]

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


 
Kolan ©   (2006-11-09 11:54) [6]

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

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


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


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

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


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

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

А else ?


 
RWolf ©   (2006-11-09 12:06) [9]

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


 
Anatoly Podgoretsky ©   (2006-11-09 12:09) [10]

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

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


 
Kolan ©   (2006-11-09 12:11) [11]

Замени это:
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


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

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


 
_RusLAN ©   (2006-11-09 15:47) [13]

> Единственный выход такой?
> 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 ...



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

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

Наверх




Память: 0.49 MB
Время: 0.053 c
2-1162984685
kolius
2006-11-08 14:18
2006.11.26
Как избавить от мелькания TMemo?


2-1162882433
zdm
2006-11-07 09:53
2006.11.26
XPManifest


15-1162574057
lookin
2006-11-03 20:14
2006.11.26
Индекс цитирования изданий по технологиям программирования


15-1162996638
oldman
2006-11-08 17:37
2006.11.26
Первая пятилетка прошла успешно!


1-1160562843
atruhin
2006-10-11 14:34
2006.11.26
Перекрестные ссылки в компонентах