Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2007, 19:01   #1
Slash
Пользователь
 
Регистрация: 04.02.2007
Сообщений: 34
По умолчанию Непонятная ошибка

for i:=0 to a.Count
do
if a.Strings[i]=combobox1.Text
then listbox1.Items.Add(a.Strings[i]) else
i:=i+1;

Выдаёт ошибку Assignment to FOR-Loop variable "i"

Делфи занимаюсь немного, что за ошибка не знаю. Подскажите пожалуйста чё делать?
Заранее спасибо
Все мы когда-то начинали
Slash вне форума Ответить с цитированием
Старый 18.06.2007, 19:55   #2
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Нельзя менять переменную цикла (в данном случае i) во время работы цикла - это делает автоматически!
Jeni вне форума Ответить с цитированием
Старый 18.06.2007, 20:53   #3
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от Slash Посмотреть сообщение
Подскажите пожалуйста чё делать?
используй repeat until
rpy3uH вне форума Ответить с цитированием
Старый 18.06.2007, 22:19   #4
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Цитата:
Сообщение от Slash Посмотреть сообщение
for i:=0 to a.Count do
Кстати, тут ошибка в индексах. Нужно писать
Код:
for i:=0 to a.Count - 1 do
Иначе возникнет ошибка при попытке использовать несуществующий элемент списка.
Jeni вне форума Ответить с цитированием
Старый 19.06.2007, 00:00   #5
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

да, хоть вот так:
Код:
i:=0;
  while i < a.Count do
     begin
       if a.Strings[i]=combobox1.Text
          then listbox1.Items.Add(a.Strings[i]) 
      else
          i:=i+1;
end;
Alex21 вне форума Ответить с цитированием
Старый 19.06.2007, 00:56   #6
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Цитата:
Сообщение от Alex21 Посмотреть сообщение
да, хоть вот так:
Интересно, если все-же выполнится сравнение, сколько времени в таком случае понадобится системе для исчерпания свободной памяти?
Jeni вне форума Ответить с цитированием
Старый 19.06.2007, 14:45   #7
Slash
Пользователь
 
Регистрация: 04.02.2007
Сообщений: 34
По умолчанию

Всем спасибо)
Все мы когда-то начинали
Slash вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятная ошибка!!! Delphi Dimon88 Помощь студентам 7 06.05.2008 00:14
Что за ошибка... Alexij БД в Delphi 1 17.04.2008 23:17
Ошибка ADO Баламут БД в Delphi 0 12.10.2007 03:49