Insa
Insa is used to insert elements from single-sized arrays, from an index.
Syntax
Insa START ARRAY_LIST
Insa START, NUMBER ARRAY_LIST
Insa START, NUMBER, LIMIT ARRAY_LIST
STARTis an integer expression that gives the index in the arrays from which the insertions are made. It cannot exceed the highest index and the smallest index available in the array list.NUMBERis an integer expression that gives the number of positions to be inserted. It must be strictly positive. If not given by the syntax, '1' will be used.LIMITis an integer expression that gives the index in the arrays where the insertion ends.LIMITcannot exceed the highest index and the smallest index available in the array list.ARRAY_LISTis a list of arrays variable (at least one) separated by commas.
Examples
Let's imagine we have three arrays called COMPOSER(1..11), NAME(1..11), and BIRTH_YEAR(1..11), that have at the beginning the following values:
| Index | NAME | FIRSTNAME | BIRTH YEAR |
|---|---|---|---|
| 1 | BUXTEHUDE | Dietrich | 1637 |
| 2 | BACH | Johann Sebastian | 1685 |
| 3 | MOZART | Wolfgang Amadeus | 1756 |
| 4 | BEETHOVEN | Ludwig | 1770 |
| 5 | SCHUBERT | Frantz | 1797 |
| 6 | WAGNER | Richard | 1813 |
| 7 | STRAUSS | Richard | 1864 |
| 8 | SCHOENBERG | Arnold | 1874 |
| 9 | BERG | Alban | 1885 |
| 10 | STOCKHAUSEN | Karlheintz | 1928 |
| 11 | 0 |
After execution of:
Insa 1,2 COMPOSER, NAME, BIRTH_YEAR
The result will be the following. The last element of the list is lost because we had only one position that was empty at the end of the array:
| Index | NAME | FIRSTNAME | BIRTH YEAR |
|---|---|---|---|
| 1 | 0 | ||
| 2 | 0 | ||
| 3 | BUXTEHUDE | Dietrich | 1637 |
| 4 | BACH | Johann Sebastian | 1685 |
| 5 | MOZART | Wolfgang Amadeus | 1756 |
| 6 | BEETHOVEN | Ludwig | 1770 |
| 7 | SCHUBERT | Frantz | 1797 |
| 8 | WAGNER | Richard | 1813 |
| 9 | STRAUSS | Richard | 1864 |
| 10 | SCHOENBERG | Arnold | 1874 |
| 11 | BERG | Alban | 1885 |
Insa 6,2,10 COMPOSER, NAME, BIRTH_YEAR| Index | NAME | FIRSTNAME | BIRTH YEAR |
|---|---|---|---|
| 1 | 0 | ||
| 2 | 0 | ||
| 3 | BUXTEHUDE | Dietrich | 1637 |
| 4 | BACH | Johann Sebastian | 1685 |
| 5 | MOZART | Wolfgang Amadeus | 1756 |
| 6 | 0 | ||
| 7 | 0 | ||
| 8 | BEETHOVEN | Ludwig | 1770 |
| 9 | SCHUBERT | Frantz | 1797 |
| 10 | WAGNER | Richard | 1813 |
| 11 | BERG | Alban | 1885 |
Description and comments
Insa is used to insert elements (by default 1) from a set of single-sized arrays.
In every table, the elements are shifted to the end of the table (this is the default value for LIMIT) by a number of positions equal to NUMBER. The last NUMBER elements in the table are lost, and elements with null values are inserted from the START position (null dates, 0 for numeric values, and empty strings).
When LIMIT has a value that is smaller than the lowest limit of the arrays, elements from the START position to the LIMIT (inclusively) are shifted, the array elements after LIMIT are not shifted, and the NUMBER elements from position LIMIT-NUMBER+1 to LIMIT are lost.
Associated errors
| 8 | At least one of the indexes is outside the limits of one of the arrays. |
| 10 | START, NUMBER, or LIMIT are not numeric values. |
| 50 | NUMBER is less or equal to 0. |
| 55 | At least one of the arrays is not single sized. |