Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 6 Следующий »

Цикл "Для каждого" / Loop For Each

Группа действий: Базовые действия


Данное действие предназначено для выполнения заданной итерации по всем элементам коллекции. Для добавления в тело цикла последовательности действий необходимо переместить их на контур действия "Цикл "Для каждого".

Настройки

СвойствоОписаниеТипПример заполненияОбязательность заполнения поля
Параметры
КоллекцияКоллекция объектов, проход по которым будет осуществляться в циклеRobin.Collection Да
Результаты
ОбъектОбъект, в который будет помещен каждый элемент коллекции во время выполнения итерацииRobin.Object  


Особые условия использования

Отсутствуют.



Порядок работы с циклом «Для каждого»:

1.Выбрать действие «Для каждого» из группы действий «Базовые действия» и перенести в сценарий; 

2. Заполнить тело цикла необходимыми действиями;
Пример заполнения:

3. Заполнить параметры действия

    1. Коллекция (список значений, которые будут обработаны в цикле)

Пример заполнения параметров:


4. Результат работы цикла: объект, в который будет помещен каждый элемент коллекции во время выполнения итерации.


Сравнение циклов «Для» и «Для каждого».

Цикл «Для» выполнит работу заданное количество раз. Итератор будет принимать значения от начального заданного значения до конечного с шагом, указанным в поле «Инкремент».

Цикл «Для каждого» последовательно работает с элементами выбранной коллекции. Количество итераций равно количеству элементов в коллекции, выбранной на входе.

Таким образом результат цикла «Для» это число, а «Для каждого» объект.


Пример использования

Задача:

Существует коллекция переменных с типом "Число", содержащие соответственно значение "(1988, 8, 2, 4)".

Необходимо завершить работу цикла, пока значение числовой переменной не будет равно значению "2".

Решение:

  1. Добавить цикл "Для каждого".
  2. Добавить действие "Равно".
  3. Добавить условие "Если". В ветвь "Истина" добавить сообщение в лог и прерывание цикла.

Реализация:

  1. Создаем переменную с типом "Коллекция". В коллекцию вносим значения (1988, 8, 2, 4) типа "Число"


  2. Перемещаем в рабочее пространство студии действие Цикл "Для каждого".
    1. Параметр "Коллекция". Указываем созданную коллекцию"Коллекция_значений". В ходе работы робота, цикл будет проходить по каждому из значений в коллекции.



  3. Перемещаем в рабочее пространство студии действие "Равно", внутрь цикла "Для каждого".
    1. Параметр "Первый операнд". В данном параметре указываем объект текущей итерации цикла "Для каждого".
    2. Параметр "Второй операнд". В данном параметре указываем число "2". При нахождении числа 2 в цикле "Для каждого", цикл закончит свою работу.


  4. Перемещаем в рабочее пространство студии действие "Если", внутрь цикла "Для каждого".
    1. Параметр "Условие". В данном параметре указывается результат действия "Равно". Если результат действия "Равно" - true, то робот пойдет по ветке "Истина", если - false, то - по ветке "Ложь".


    2. В ветке "Истина" действия "Если" перемещаем действие "Сообщение в лог".

    3. В ветке "Истина" действия "Если" перемещаем действие "Прервать цикл"
  5. Запускаем робота по кнопке "Запуск" в верхней панели. Итоговая схема робота будет выглядеть следующим образом:

Результат:

Робот отработал успешно. Алгоритм прошел по циклу и был прерван после того как в коллекции было найдено значение "2".



Кейс «Сортировка». Цикл «Для каждого».

Задача: В папке находятся файлы с расширением .xls(x) и .docx. Необходимо создать папки с названием расширения и распределить файлы по папкам.

Решение:

  1. На рабочую область перенести действия «Получить содержимое папки» и «Для каждого». 

  2. Заполнить параметры действий.

    1. Действие «Получить содержимое папки».

      1. В строке «Папка» указать путь до папки с файлами, которые необходимо рассортировать.

      2. В поле  «Тип объектов» указать значение  "только файлы".



    2. Действие «Для каждого».

      1. В строке «Коллекция» указать результат выполнения действия «Получить содержимое папки»



  3. В тело цикла поместить следующие действия в указанном порядке:

    1. «Получить информацию о файле»;
    2. «Извлечь с позиции»;
    3. «Найти папку»;
    4. «Получить длину»;
    5. «Если»
    6. На ветвь «Истина» переместить действия:
      1. «Получить значение по индексу»;
      2. Конвертировать данные;
      3. «Переместить файл»;
    7. На ветвь «Ложь» переместить действия:
      1. «Создать новую папку»;
      2. «Переместить файл»;



  4. Заполнить параметры действий.
    1. Для действия «Получить информацию о файле»:
      1. Параметр «Файл» - ссылка на объект, обрабатываемый в момент итерации цикла.


    2. Для действия «Извлечь с позиции»;
      1. Параметр «Исходный текст» - результат "Расширение" действия «Получить информацию о файле».
      2. Параметр «Позиция» - 1.
      3. Параметр «Длина» - если данный параметр не заполнен, то текст извлекается с заданной позицией до конца.


    3. Для действия «Найти папку». 
      1. Параметр «Папка для поиска» - путь до папки, где храниться подпапка для сортировки файлов.
      2. Параметр «Шаблон поиска» - результат действия «Извлечь с позиции».



    4. Для действия «Получить длину». 
      1. Параметр «Коллекция или массив» - результат действия «Найти папку».



    5. Для действия «Если». 
      1. С помощью инструмента построения выражения в параметр условия записать логический оператор «Больше чем», где первый операнд – результат действия «Получить длину», а второй – 0.





    6. Для действия «Получить значение по индексу».
      1. Параметр «Коллекция» - результат действия «Найти папку».
      2. Параметр «Индекс» - 0. 


    7. Для действия «Конвертировать данные». 
      1. Параметр «Источник» - результат действия «Путь к папке». 
      2. Параметр «Тип» - путь к папке. 



    8. Для действия «Переместить файл».
      1. Параметр «Файл» - ссылка на объект, обрабатываемый в момент итерации цикла.
      2. Параметр «Папка назначения» - результат действия «Конвертировать данные».
    9. Для действия «Создать новую папку». 
      1. Параметр «Родительская папка» - путь до папки, где , где храниться подпапка для сортировки файлов.
      2. Параметр «Имя» - результат действия «Извлечь с позиции».
    10. Для действия «Переместить файл».
      1. Параметр «Файл» - ссылка на объект, обрабатываемый в момент итерации цикла.
      2. Параметр «Папка назначения» - результат действия «Создать новую папку».

Результат:

Робот отработал успешно.

Алгоритм прошел по циклу, рассортировывая файлы по папкам.


  • Нет меток