Project

General

Profile

Testasd » History » Version 71

Per Amundsen, 02/08/2023 09:46 AM

1 45 Per Amundsen
h1. Multidimensional arrays
2
3 62 Per Amundsen
*/marray -aTNBAV <name> [N..] <item> <value>*
4
*/marray -eTNBAV <name> [N..] <N> <item> <value>*
5 1 Per Amundsen
*/marray -iTNBAV <name> [N..] <N> <item> <value>*
6
*/marray -d <name> [N..] <N>*
7 54 Per Amundsen
*/marray -f <name>*
8
9 70 Per Amundsen
Adds/removes/inserts/modifies items in a multi dimensional table/array.
10 67 Per Amundsen
11 65 Per Amundsen
*Parameters*
12
13
<name> - Name of the table to modify.
14
[N..] - Indicates the item should be added/inserted/deleted from sub table position N, subsequent N parameters travels further down.
15
<N> - The Nth item in a table or sub table to modify.
16
<item> - The item name.
17
<value> - The item value.
18
19 45 Per Amundsen
*Switches*
20
21 64 Per Amundsen
-a - Add a new item to a table.
22
-e - Edit a item in a table.
23
-i - Insert a new item to a table.
24
-d - Delete a item from a table.
25
-f - Free/delete a table.
26 62 Per Amundsen
-T - Indicates the type is text.
27
-N - Indicates the type is a number.
28
-B - Indicates the type is a boolean.
29
-A - Indicates the type is a sub table/array.
30 68 Per Amundsen
-V - TODO Indicates the type is a binvar.
31 62 Per Amundsen
32 66 Per Amundsen
---------------------------------------------------------
33
34 1 Per Amundsen
*$marray(name, N, [N..])*
35
36 67 Per Amundsen
Gets the Nth item in a table, subsequent N parameters gets the Nth item from a sub table, infinite sub depth.
37 45 Per Amundsen
38 71 Per Amundsen
*Parameters*
39
40
name - The outer table name.
41
N - The Nth item in the table.
42
[N..] - The Nth item in a sub table, subsequent N parameters travels further down.
43
44
*Properties*
45 49 Per Amundsen
46 60 Per Amundsen
.item - Get item.
47 55 Per Amundsen
.value - Get item value.
48 62 Per Amundsen
.type - Get item type. (0 = text, 1 = number, 2 = bool, 3 = binvar, 4 = sub table)
49 55 Per Amundsen
.json - Generate a json table from all items in the current table and all sub tables.
50
.ini - Generate a ini output from all items in the current table and all sub tables.
51 63 Per Amundsen
.xml - Generate a xml output from all items in the current table and all sub tables.
52 1 Per Amundsen
53
*Example*
54 56 Per Amundsen
55 1 Per Amundsen
<pre>
56 56 Per Amundsen
; Add item1/value1 to the table 'table1'.
57 62 Per Amundsen
//marray -a table1 item1 value1
58 56 Per Amundsen
59 62 Per Amundsen
; Add sub table 'item2' to the table 'table1'.
60
//marray -aA table1 item2 value2
61 57 Per Amundsen
62 55 Per Amundsen
; Insert item3/value3 at position '1' in the table 'table1'.
63 62 Per Amundsen
//marray -i table1 1 item3 value3
64 55 Per Amundsen
65
; Print number of items in table 'table1'.
66
//echo -ag Number of items in table1 is $marray(table1, 0)
67
68
; Print the first items in table 'table1'.
69 1 Per Amundsen
//echo -ag First item in table1 is $marray(table1, 1).item
70 55 Per Amundsen
71 1 Per Amundsen
; Delete the first item in table 'table1'.
72 55 Per Amundsen
//marray -d table1 1
73
74
; Free the table 'table1'.
75
//marray -f table1
76
77
; Add a new sub table to table 'table1',
78 62 Per Amundsen
//marray -aA table1 sub1 sub1
79 55 Per Amundsen
80 56 Per Amundsen
; Add a new item to the sub table located at position '1' in table 'table1'.
81 62 Per Amundsen
//marray -a table1 1 item1 value1
82 55 Per Amundsen
83
; Print the first item in the table 'table1', which is a sub table.
84
//echo -ag First item in table1 is $marray(table1, 1).item - $marray(table1, 1).type
85
86
; Print the first item in the sub table located at position '1' in table 'table1'.
87
//echo -ag First item in sub table1 is $marray(table1, 1, 1).item
88 63 Per Amundsen
89
; Generates a json output of table 'table1'.
90
// echo -ag $marray(table1).json
91
92
; Generates a ini output of table 'table1'.
93
// echo -ag $marray(table1).ini
94
95 69 Per Amundsen
; Generates a xml output of sub table at position '1' in table 'table1'.
96 63 Per Amundsen
// echo -ag $marray(table1, 1).xml
97 1 Per Amundsen
</pre>