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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 23.05.2014, 15:24   #1
Pearl777
Форумчанин
 
Регистрация: 04.01.2013
Сообщений: 171
По умолчанию Не могу разобраться с Inc

Здравствуйте! Пишу одну программкку, но в результате наткнулся на стену.

Код:
 while Work do
  begin
   CS.Enter;
   Inc(Acc);
   Inc(tp);
   Inc(gr);
   if Acc < Accounts.Count then CAcc:=Acc else Acc:=0;
   if tp < Proxy.Count then CurProxy:=tp else tp:=0;
   if gr < Group.Count then CurGroup:=gr else begin
   Inc(ps);
   end;

    if ps < Images.Count then CurImages:=ps else work:=false;
   CS.Leave;

   if Work then
    begin
Суть заключается в том, что программа должна загружать фото на сайт. Пример: Берем первый аккаунт (Acc) и первую картинку (ps), загружаем эту картинку во все группы (gr). Если группы закончились, то мы берем следующую картинку и опять же загружаем во все группы.

Но в результате у меня получилось так, что все грузится только в первую группу. И только одна картинка попадает во вторую группу. С аккаунтами точно также, второй аккаунт используется всего лишь раз, все остальное грузится с первого.

Последний раз редактировалось Stilet; 23.05.2014 в 16:16.
Pearl777 вне форума
Старый 23.05.2014, 16:59   #2
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

inc - функция наращения на 1, если не принимает других параметров. Неужели сложно использовать простые циклы?
Код:
for pc:=0 to Pictures.Count do
 for acc:=0 to Accounts.Count do
  for tp:=0 to Proxy.Count do
   for gr:=0 to Group.Count do
   begin
    //uploading pc
    //тут загрузятся все pc
   end;
alextrof94$gmail.com

Последний раз редактировалось alextrof94; 23.05.2014 в 17:02.
alextrof94 вне форума
Старый 23.05.2014, 18:12   #3
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

судя по коду чел пытается "распоточить" и циклы в таком случае не канают (не в таком виде)

Код:
while Work do
  begin
   CS.Enter;
   Inc(gr);
   if gr >= Group.Count then
   begin
     gr:=0;
     Inc(tp);
     if tp >= Proxy.Count then
     begin
       tp:=0;
       Inc(Acc); 
       if Acc >= Accounts.Count then
       begin
         Acc:=0;
         Inc(ps);
         if ps>= Images.Count then work:=false;
       end;
     end;
   end;
  cur:=.....
   CS.Leave;

   if Work then
    begin
Не стесняемся, плюсуем!

Последний раз редактировалось Slym; 23.05.2014 в 18:20.
Slym вне форума
Старый 23.05.2014, 20:05   #4
Pearl777
Форумчанин
 
Регистрация: 04.01.2013
Сообщений: 171
По умолчанию

Цитата:
Сообщение от alextrof94 Посмотреть сообщение
inc - функция наращения на 1, если не принимает других параметров. Неужели сложно использовать простые циклы?
Код:
for pc:=0 to Pictures.Count do
 for acc:=0 to Accounts.Count do
  for tp:=0 to Proxy.Count do
   for gr:=0 to Group.Count do
   begin
    //uploading pc
    //тут загрузятся все pc
   end;
Мне не понятно как в случае окончания цикла начать его выполнение заново.


Уже даже изменил свой старый исходник, и вышла та же фишка. Мне кажется, что это из-за нескольких Inc`ов. Потому как до подключения
Код:
             Inc(Img);
   if Img<images.Count then CImg:=Img else Work:=false;

   Inc(Grp);
   if Grp<groups.Count then CGrp:=Grp else Grp:=0;
с аккаунтами было все нормально, а теперь вот используется один первый и дальше только второй аккаунт ( с группой точно также).
Pearl777 вне форума
Старый 23.05.2014, 22:58   #5
Pearl777
Форумчанин
 
Регистрация: 04.01.2013
Сообщений: 171
По умолчанию

Всем спасибо! Вопрос больше не актуален.

Код:
             Inc(Acc);
    if Acc >= Accounts.Count then
       begin
         Acc:=0;
       end;

   if Img >= images.Count then work:=false;


             Inc(Grp);
   if Grp >= groups.Count then begin
   Grp:=0;
    inc(img);
      end;
Вот так все отлично работает.
Pearl777 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу разобраться Виктор27 Общие вопросы C/C++ 6 22.11.2013 22:21
C++: не могу разобраться...=( Алиса Ростова Помощь студентам 0 03.12.2011 15:27
Не могу разобраться Xoksik Общие вопросы по Java, Java SE, Kotlin 4 27.03.2011 23:36
не могу разобраться Инспектор ГУЛ Свободное общение 7 20.09.2009 09:29