Взять точное кол-во строк.

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Выбираю из списка определенное кол-во строк, но почему то в итоге есть неправильный остаток.
берет на 1 больше чем указано в диапазоне. Почему так?

upload_2016-11-9_0-33-14.png
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 885
Баллы
113
Потому что считаете с 0. Т.е., если указать 0-10, то возьмёт не 10, а 11 строк, ведь 0 - это тоже строка.
 
  • Спасибо
Реакции: one

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Как то не учел этот момент. В связи с этим у меня получается что не все строки в итоге берутся в последнем проходе. Как получить в последнем проходе все оставшиеся строки? Данный экшен, что на скрине, отрабатывает по счетчику указанное кол-во раз.
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 885
Баллы
113

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Потому что считаете с 0. Т.е., если указать 0-10, то возьмёт не 10, а 11 строк, ведь 0 - это тоже строка.
Я решил задачу отнимая 1 от исходного значения.

Включите второй чекбокс и выходите по циклу, когда все строки закончатся.
Нет, все равно остаток остается. Смотрите, есть 1000 строк. Указанный выше экшен отрабатывает 30 раз и берет из списка 33 строки удаляя взятое. После окончания в списке остается 9 строк. Как заставить его взять в последнюю интерацию весь остаток списка.
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 885
Баллы
113
Так же - указываете, чтобы брал 33 строки. Т.е. тут не ограничиваетесь на повторы, а ограничиваетесь именно тем, что список будет пустым. Т.е. если Вы укажете взять 33 строки, но в файле будет 9, шаблон выполнит действие и пойдёт дальше, при следующей попытке, когда в файле будет 0 строк, он пойдёт по неудачному выходу.
 
  • Спасибо
Реакции: one

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Нет, не ограничиватся повторами нельзя. Надо брать не менее 33 строк за раз. Задача стоит, за указанное кол-во повторов забрать все строки из списка. Как вариант, думаю сейчас над решением на последней итерации брать все что осталось в списке.
 
Последнее редактирование:
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
Как то не учел этот момент. В связи с этим у меня получается что не все строки в итоге берутся в последнем проходе. Как получить в последнем проходе все оставшиеся строки? Данный экшен, что на скрине, отрабатывает по счетчику указанное кол-во раз.
что за тупизм?
бери диапазон от 0 до 9 или от 0 до 99 и будет у тебя ровно брать!
 

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Да не тупизм, кол-во строк задает формула с динамическим результатом.
 
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Да простые.

Код:
Math.floor({-Variable.Var1-}/({-Variable.Var2-}+({-Variable.Var2-}*{-Variable.Var3-}))-1);
 

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
В общем реализовал задуманное, выделив последнюю итерацию в отдельный блок с экшенами которая забирает все что осталось в списке.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
В общем реализовал задуманное, выделив последнюю итерацию в отдельный блок с экшенами которая забирает все что осталось в списке.
а итерации до последней реализованы кодом или экшенами?
 
Последнее редактирование:

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Все реализовано экшенами.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)