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

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

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

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

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


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

Настройки

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


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

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



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

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

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

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

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

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


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


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

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

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

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


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

Задача:

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

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

Решение:

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

Реализация:

  1. Создаем переменную с типом "Коллекция".
  2. Создаем и добавляем в коллекцию "Коллекция_значений" переменную с типом "Массив чисел" и элементами"(1988, 8, 2, 4)", проход по которым будет осуществляться в цикле.
  3. Открываем группу действий "Базовые действия".
  4. Помещаем в рабочее пространство студии действие "Цикл "Для каждого".
    Настройка действия: 
    1. Параметр "Коллекция". Выбираем коллекцию "Коллекция_значений", проход по объектам которой будет осуществляться в цикле.
    2. Параметр "Объект". Выбираем переменную "ITERATION_ACTUAL_STATE", в которую будет помещен каждый элемент коллекции.
  5. Помещаем в рабочее пространство студии действие "Если" (см. описание действия "Если"). 
    1. Помещаем в рабочее пространство действия "Если" ветви "Нет" действие "Сообщение в лог" (см. описание действия "Сообщение в лог"). 
    2. Помещаем в рабочее пространство действия "Если" ветви "Нет" действие "Прервать цикл" (см. описание действия "Прервать цикл"). 
  6. Помещаем в рабочее пространство студии действие "Сообщение в лог" (см. описание действия "Сообщение в лог"). 
  7. Запускаем робота по кнопке "Запуск" в верхней панели.

Результат:

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





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

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

Решение:

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

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


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

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

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

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

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

                                                                         i.      «Получить значение по индексу»;

                                                                       ii.      Конвертировать данные;

                                                                    iii.      «Переместить файл»;

                  g. На ветвь «Ложь» установить действия:

                                                                         i.      «Создать новую папку»;

                                                                       ii.      «Переместить файл»;

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

Для действия «Получить информацию о файле»:

  • Параметр «Файл» - ссылка на объект, обрабатываемый в момент итерации цикла.
  • Параметр «Свойство» - «Тип».


b. Для действия «Извлечь с позиции»;

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

с. Для действия «Найти папку». 

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

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

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

f. Для действия «Получить значение по индексу».

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

g. Для действия «Конвертировать данные». 

  • Параметр «Источник» - результат действия «Путь к папке». 
  • Параметр «Тип» - путь к папке. 

h.  Для действия «Переместить файл».

  • Параметр «Файл» - ссылка на объект, обрабатываемый в момент итерации цикла.
  • Параметр «Папка назначения» - результат действия «Конвертировать данные».

j. Для действия «Создать новую папку». 

  • Параметр «Родительская папка» - путь до папки, где , где храниться подпапка для сортировки файлов.
  • Параметр «Имя» - результат действия «Извлечь с позиции».

k. Для действия «Переместить файл».

  • Параметр «Файл» - ссылка на объект, обрабатываемый в момент итерации цикла.
  • Параметр «Папка назначения» - результат действия «Создать новую папку».

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



  • Нет меток