ZennoLab

Automate everything

User Tools

Site Tools


Sidebar

Translations of this page:

en:table

Table processing

What can tables be used for

  • You have a file with the data in the format:
text
	login1;pass1;email1
	login2;pass2;email2
	login3;pass3;email3
	....

You need to take a line from the file (data from one account) and get a separate login, pass and email for each execution of the project.

  • You have a .xls, .xlsx, .odt or. csv file and you need to access data from it.
  • You need to save any created in the project data as a table or simply in Excel format.

Creating tables

Tables can be created in two places:

  1. The project editor by dragging its icon from the toolbar in the editor window.
  2. When you record the project under a tree project is a small area with profile and variables. There you can create a table by clicking on a blank area ​​the right mouse button.

Setting up tables

Table icon is visible at the bottom of the editor. Near to profile settings, variables, etc. While writing projects, this icon is under a tree of project. You can change table name, open window of parameters editing or remove a table by clicking right mouse button on this icon. You can add data to a table manually or load it from a file. To load data from file set tick “Load from a file”, if you need to syncronize table with file set tick “Save changes of table to file”. You also have to specify path and separator. If you have file with extension .xls, .xlsx, .odt or .csv then separator isn't necessary. If you have file with other extensions (not listed above), for instance .txt, select “Own format” and specify separators.

Access to table data

To use data contained in a table, there is action “Table processing”. You can take a line or cell, add and remove them, save data to a file by using this action. The markup in the table is simple, as in a normal Excel document, the columns are named in Latin characters, lines - numbers (starting with zero).
Note: reading all table cells of single line (for instance login, pass and email) to variables, can be done in one action by using “Take line”. You do not need to create a lot of actions that will read every cell in the table separately.
You can use ranges while specifying line numbers.

Restrictions and cautions

  • Do not create large files (hundreds of MBs), especially if you don't have enough RAM.
  • Table can not be fully synchronized with file (to save changes to a file) from a few projects with different separators. For instance, you have two different projects. You use the same file in both. But in the first project columns are separated by ';' and in the second by '-'. An error will occur in this case.
  • Restrictions with multithreading see below.

Multithreaded access to the same file

If you run a project in multi-threading mode (with full synchronization of file with table), then no errors will occur while following a simple rule: handle a table in one action. For example, you need to take a line with removal. It will not be correct, if you take a line in one action and remove it in another one. This can be done in one action - set up tick “Remove after getting”. In one action can do almost everything you might need when working with a table.
If all projects only read a file, then there won't be any problem at all however would you handle a table.

Warning !!!

When you use sync tables with files ('save changes to file' is checked in table's settings), all your threads will use the same data and all actions which will affect changes in table will modify this table for every other thread.

If you don't use sync, every thread will operate with separate copy of initial table. And if you will use actions for deleting lines, for example, they will affect only 1 copy of this table within current thread.

If you use huge tables, make sure to use sync with files. Otherwise each instance will use a lot of RAM.

en/table.txt · Last modified: 2015/07/14 15:51 (external edit)