Dela

Dela is used to delete elements from single-sized arrays, from a given index.

Syntax

  Dela START ARRAY_LIST
  Dela START, NUMBER ARRAY_LIST
  Dela START, NUMBER, LIMIT ARRAY_LIST
  • START is an integer expression that gives the index in the arrays from which the deletions are made. It cannot exceed the highest index or fall short of the smallest index available in the array list.
  • NUMBER is an integer expression that gives the number of indexes to be deleted. It must be strictly positive. If not given by the syntax, '1' will be used.
  • LIMIT is an integer expression that gives the index in the arrays where the deletion ends. LIMIT cannot exceed the highest index and the smallest index available in the array list.
  • ARRAY_LIST is a list of arrays variable (at least one), separated by commas.

Examples:

Let's imagine we have three arrays called COMPOSER(1..10), NAME(1..10), and BIRTH_YEAR(1..10) 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

After execution of:

Dela 1 COMPOSER, NAME, BIRTH_YEAR

The result will be the following. The empty lines at the end of the arrays are not listed:
IndexNAMEFIRSTNAMEBIRTH YEAR
1BACHJohann Sebastian1685
2MOZARTWolfgang Amadeus1756
3BEETHOVENLudwig1770
4SCHUBERTFrantz1797
5WAGNERRichard1813
6STRAUSSRichard1864
7SCHOENBERGArnold1874
8BERGAlban1885
9STOCKHAUSENKarlheintz1928

Let's now execute the following instruction on the previous result:

Dela 2,3 COMPOSER, NAME, BIRTH_YEAR

The result will become:
IndexNAMEFIRSTNAMEBIRTH YEAR
1BACHJohann Sebastian1685
2WAGNERRichard1813
3STRAUSSRichard1864
4SCHOENBERGArnold1874
5BERGAlban1885
6STOCKHAUSENKarlheintz1928

Let's now execute the following instruction on the previous result:

Dela 3,2,5 COMPOSER, NAME, BIRTH_YEAR

The result will become:
IndexNAMEFIRSTNAMEBIRTH YEAR
1BACHJohann Sebastian1685
2WAGNERRichard1813
3BERGAlban1885
40
50
6STOCKHAUSENKarlheintz1928

Let's now execute the following instruction on the previous result:

Dela 6,1 COMPOSER, NAME, BIRTH_YEAR

The result will become:
IndexNAMEFIRSTNAMEBIRTH YEAR
1BACHJohann Sebastian1685
2WAGNERRichard1813
3BERGAlban1885

Description and comments

Dela is used to delete elements (by default 1) from a set of single-sized arrays.

In every table, the elements are shifted from 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 set to null values (0 for numeric values, null date for dates, and empty character strings for 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 LIMITS are not shifted, and the NUMBER elements from position LIMIT-NUMBER+1 to LIMIT are then set to null values.

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, Insa.