Insa

Insa is used to insert elements from single-sized arrays, from an index.

Syntax

 Insa START ARRAY_LISTInsa START, NUMBER ARRAY_LISTInsa START, NUMBER, LIMIT ARRAY_LIST

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:

IndexNAMEFIRSTNAMEBIRTH YEAR
1BUXTEHUDEDietrich1637
2BACHJohann Sebastian1685
3MOZARTWolfgang Amadeus1756
4BEETHOVENLudwig1770
5SCHUBERTFrantz1797
6WAGNERRichard1813
7STRAUSSRichard1864
8SCHOENBERGArnold1874
9BERGAlban1885
10STOCKHAUSENKarlheintz1928
110

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:

IndexNAMEFIRSTNAMEBIRTH YEAR
10
20
3BUXTEHUDEDietrich1637
4BACHJohann Sebastian1685
5MOZARTWolfgang Amadeus1756
6BEETHOVENLudwig1770
7SCHUBERTFrantz1797
8WAGNERRichard1813
9STRAUSSRichard1864
10SCHOENBERGArnold1874
11BERGAlban1885
Let's now execute the following instruction on the previous result:
Insa 6,2,10 COMPOSER, NAME, BIRTH_YEAR
IndexNAMEFIRSTNAMEBIRTH YEAR
10
20
3BUXTEHUDEDietrich1637
4BACHJohann Sebastian1685
5MOZARTWolfgang Amadeus1756
60
70
8BEETHOVENLudwig1770
9SCHUBERTFrantz1797
10WAGNERRichard1813
11BERGAlban1885

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

8At least one of the indexes is outside the limits of one of the arrays.
10START, NUMBER, or LIMIT are not numeric values.
50NUMBER is less or equal to 0.
55At least one of the arrays is not single sized.

See also

Sorta, Dela.