Project

General

Profile

Testasd » History » Revision 69

Revision 68 (Per Amundsen, 02/08/2023 09:42 AM) → Revision 69/73 (Per Amundsen, 02/08/2023 09:43 AM)

h1. Multidimensional arrays 

 */marray -aTNBAV <name> [N..] <item> <value>* 
 */marray -eTNBAV <name> [N..] <N> <item> <value>* 
 */marray -iTNBAV <name> [N..] <N> <item> <value>* 
 */marray -d <name> [N..] <N>* 
 */marray -f <name>* 

 Add/removes/inserts/modifies items in a multi dimensional table/array. 

 *Parameters* 

 <name> - Name of the table to modify. 
 [N..] - Indicates the item should be added/inserted/deleted from sub table position N, subsequent N parameters travels further down. 
 <N> - The Nth item in a table or sub table to modify. 
 <item> - The item name. 
 <value> - The item value. 

 *Switches* 

 -a - Add a new item to a table. 
 -e - Edit a item in a table. 
 -i - Insert a new item to a table. 
 -d - Delete a item from a table. 
 -f - Free/delete a table. 
 -T - Indicates the type is text. 
 -N - Indicates the type is a number. 
 -B - Indicates the type is a boolean. 
 -A - Indicates the type is a sub table/array. 
 -V - TODO Indicates the type is a binvar. 

 --------------------------------------------------------- 

 *$marray(name, N, [N..])* 

 Gets the Nth item in a table, subsequent N parameters gets the Nth item from a sub table, infinite sub depth. 

 *Switches* 

 .item - Get item. 
 .value - Get item value. 
 .type - Get item type. (0 = text, 1 = number, 2 = bool, 3 = binvar, 4 = sub table) 
 .json - Generate a json table from all items in the current table and all sub tables. 
 .ini - Generate a ini output from all items in the current table and all sub tables. 
 .xml - Generate a xml output from all items in the current table and all sub tables. 

 *Example* 

 <pre> 
 ; Add item1/value1 to the table 'table1'. 
 //marray -a table1 item1 value1 

 ; Add sub table 'item2' to the table 'table1'. 
 //marray -aA table1 item2 value2 

 ; Insert item3/value3 at position '1' in the table 'table1'. 
 //marray -i table1 1 item3 value3 

 ; Print number of items in table 'table1'. 
 //echo -ag Number of items in table1 is $marray(table1, 0) 

 ; Print the first items in table 'table1'. 
 //echo -ag First item in table1 is $marray(table1, 1).item 

 ; Delete the first item in table 'table1'. 
 //marray -d table1 1 

 ; Free the table 'table1'. 
 //marray -f table1 

 ; Add a new sub table to table 'table1', 
 //marray -aA table1 sub1 sub1 

 ; Add a new item to the sub table located at position '1' in table 'table1'. 
 //marray -a table1 1 item1 value1 

 ; Print the first item in the table 'table1', which is a sub table. 
 //echo -ag First item in table1 is $marray(table1, 1).item - $marray(table1, 1).type 

 ; Print the first item in the sub table located at position '1' in table 'table1'. 
 //echo -ag First item in sub table1 is $marray(table1, 1, 1).item 

 ; Generates a json output of table 'table1'. 
 // echo -ag $marray(table1).json 

 ; Generates a ini output of table 'table1'. 
 // echo -ag $marray(table1).ini 

 ; Generates a xml output of sub table at position '1' in table 'table1'. 
 // echo -ag $marray(table1, 1).xml 
 </pre>