| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Как узнать индекс при переборе через for in |
| Автор: JSinx 20.1.2008, 20:05 | ||||
| Столкнулся с небольшой проблемой. Перебираю массив с помощью for in, как узнать на каком номере записи я нахожусь?
В этом случае можно при каждом переборе увеличивать на единицу другую переменную. У меня немного посложней ситуация.
|
| Автор: Alexeis 20.1.2008, 20:14 |
| Так и i и есть индекс, на записи с индексом I. |
| Автор: ivan219 20.1.2008, 21:42 |
А это правильный синтаксис |
| Автор: mr.Anderson 20.1.2008, 21:53 |
| ivan219, синтаксис-то нормальный, я только сильно сомневаюсь, что все это пройдет без предупреждений в делфи (идет вмешательство в переменную цикла). |
| Автор: JSinx 20.1.2008, 22:21 | ||||
1) Нет, i - это значение 2) Согласен, что к i прибавлять нельзя, но суть то не в этом!!!! Подставьте туда любую другую строчку. Вот вам рабочий код:
Что мы увидим в стригриде: Первая строчка будет: 4, 5, 2, 3, 1. Вторая: 0, 1, 2, 3, 4 |
| Автор: ivan219 20.1.2008, 22:52 |
А вот Delphi7 на это for i in myArray do ругается матом |
| Автор: THandle 20.1.2008, 22:56 |
| ivan219, насколько помню цикл for..in..do был введен в язык Object Pascal только в Delphi 2005. |
| Автор: JSinx 20.1.2008, 23:02 | ||
Да, в 2005 тока появилось. Очень удобная весчь, часто пользуюсь в lua, но без узнавания индекса теряет свою ценность примерно наполовину. Видимо придется пока делать через заднее место, глядишь, может и ответ получу |
| Автор: Snowy 22.1.2008, 15:22 |
| Сделай не record, а класс. Прикрути к нему свой enumerator и получишь любой желаемый функционал. |
| Автор: JSinx 22.1.2008, 17:32 | ||
Попробую |