Работа с таблицами

Использование

Таблицы используются для получения более сложно организованных данных, чем списки, (например, список товаров для интернет-магазина, где построчно представлены разные данные: название, цена, описание и пр.).

Например, у Вас есть файл, в котором лежат данные готовых аккаунтов в таком формате:

login1;pass1;email1 login2;pass2;email2 login3;pass3;email3 ....

Вам нужно при каждом выполнении проекта взять строку из этого файла (данные одного аккаунта) и получить отдельно login, pass и e-mail.

Создание и заполнение таблиц

Чтобы добавить таблицу в проект выберите группу действий Таблицы и создайте таблицу.

На панели статических блоков появится пиктограмма созданной таблицы.

Разметка в таблице простая, как в обычном Excel документе, столбцы именуются латинскими буквами, строки - цифрами (начиная с нуля). Таблицу можно заполнить вручную или загрузить данные из файла. Для того, чтобы загружать данные в таблицу из файла, поставьте галку «Загружать из файла», и, если нужно полностью синхронизировать таблицу с файлом, поставьте галку «Сохранять изменения таблицы в файл». Также понадобится указать путь к файлу, и разделитель. Если у вас обычный .xls, .xlsx, .odt или .csv файл, то просто выберите вариант с этими расширениями, и указывать разделитель не нужно. Если файл, например, .txt, то выберите «свой формат», и укажите символы разделителя.

Операции с таблицей

Для использования данных, содержащихся в таблице, создано действие Операции над таблицей, с его помощью Вы сможете брать строки или ячейки, добавлять или удалять их, и сохранять данные в файл.

  • Добавить строку - добавление строки в таблицу;

  • Удалить строку - удаление строки из таблицы;

  • Взять строку - запись строки из таблицы в список или переменную;

  • Получить количество строк - получение количества строк в таблице и запись в переменную;

  • Получить количество столбцов - получение количества столбцов в таблице и запись в переменную;

  • Прочитать ячейку - чтение содержимого ячейки и запись значения в переменную;

  • Записать ячейку - запись значения в ячейку;

  • Сохранить в файл - сохранение таблицы в файл в ходе проекта с возможностью дозаписи строк в конец таблицы;

  • Привязать к файлу - привязка таблицы к файлу в ходе проекта;

  • Удалить дубли - удаление повторяющихся строк из таблицы;

  • Сортировать - сортировка строк таблицы по убыванию или возрастанию.

Обратите внимание: положить все ячейки таблицы из одной строки в переменные можно в одно действие. Это делается через операцию «взять строку». Не нужно для этого создавать много действий, которые будут читать каждую ячейку таблицы отдельно.

При указании номеров строк можно использовать диапазоны.

Примечания

  • Не создавайте очень большие файлы в сотни мегабайт, особенно если у Вас мало оперативной памяти.

  • Нельзя полностью синхронизировать таблицу с файлом  (с сохранением изменений в файл) из нескольких проектов с разными разделителями. Т.е., например, у Вас два разных проекта. В обоих Вы используете один и тот же файл. Но в первом столбцы разделены через ';', а в другом через '-' то произойдет ошибка.

  • Ограничения при многопоточности: если Вы выполняете свой проект многопоточно (при полной синхронизации файла с таблицей) то никаких проблем не будет при соблюдении простого правила: работайте с таблицей в одно действие. Например, Вам нужно взять строку с удалением. Будет не правильно, если Вы сначала в одном действии возьмете строку, а в другом её удалите. Это можно сделать в одно действие - при взятии строки установить галку «С удалением». В одно действие можно сделать практически всё, что Вам может понадобиться при работе с таблицей.

Если все проекты только читают файл, то проблем, вообще, не будет, как бы Вы не работали с таблицей. Когда Вы используете синхронизацию с файлом, то таблица для всех потоков одна и все изменения в любом потоке отображаются в таблице.

Если Вы не используете синхронизацию с файлом, то для каждого потока будет создаваться своя копия таблицы. В этом случае при удалении сроки таблицы в одном потоке в других потоках таблица не изменится.

Если у Вас большие файлы, используйте синхронизацию с файлом, иначе будет тратиться много оперативной памяти.