Dela permet de supprimer des éléments dans des tableaux mono-dimensionnés, à partir d'un indice donné.
Dela début [ , nombre [ , borne ] ] liste_nom_var
Elément | Description | Restrictions |
début | Expression numérique entière de l'indice dans les tableaux à partir duquel se fait la suppres- sion. | début doit : |
nombre | Expression numérique entière du nombre d'éléments à supprimer. | nombre > 0 |
borne | Expression numérique entière de l'indice dans les tableaux où se termine la suppression. | borne ne doit pas dépasser la plus petite des bornes supérieures des tableaux. |
liste_nom_var | Liste de nom_var séparées par le caractère ','. | Aucune. |
nom_var | nom_de_variable désignant le tableau dans lequel s'effectue la suppression. Dans le cas d'un tableau déroulant, il s'agit de la variable de bas de tableau. | Aucune. |
# Suppression de lignes dans un tableau déroulant (dont la variable de
# bas de tableau a pour nom NLI) selon des paramètres variables
Dela [V]DEB, [V]NB, [V]FIN [M]NLI
# On dispose de 2 tableaux d'éléments.
# L'un (NOM) comporte les noms des fichiers, l'autre (CAR) les caractères "associés" :
0 | 1 | 2 | 3 | 4 | 5 | |
---|---|---|---|---|---|---|
CAR | A | A | H | I | V | V |
NOM | ansi | at386 | hp | ibm3151 | vt200 | vt200 |
# Supposons que l'on veuille y supprimer 2 éléments en 3ème position
# (c'est-à-dire à partir du rang 2) :
Dela 2, 2 CAR, NOM
# Le résultat de cette instruction sera :
0 | 1 | 2 | 3 | |
---|---|---|---|---|
CAR | A | A | V | V |
NOM | ansi | at386 | vt200 | vt200 |
# Supposons maintenant que la borne ait une valeur inférieure au
# nombre d'éléments des tableaux :
Dela 2, 2, 4 CAR, NOM
# Le résultat est alors :
0 | 1 | 2 | 3 | 4 | 5 | |
---|---|---|---|---|---|---|
CAR | A | A | V | V | ||
NOM | ansi | at386 | vt200 | vt200 |
Dela permet de supprimer des éléments (1 par défaut) dans un ensemble de tableaux mono-dimensionnés. Dans la syntaxe de l'instruction, début détermine l'indice (commun à tous les tableaux) où commence la suppression et nombre désigne le nombre d'éléments à supprimer.
Dans chaque tableau, les éléments sont 'décalés' vers la gauche depuis la fin du tableau (c'est la 'borne' par défaut) d'un nombre de positions égal à 'nombre'. Les 'nombre' derniers éléments du tableau sont mis à zéro.
Donner une valeur à borne qui soit inférieure à la plus petite des bornes inférieures des tableaux (une valeur supérieure n'aurait pas de sens) suppose que l'on s'intéresse à une restriction de ces tableaux. Dans ce cas, les 'nombre' éléments avant 'borne' (y compris 'borne') sont mis à zéro, les suivants ne sont pas modifiés. Le dessin qui suit simule la suppression de 'nombre' positions dans un tableau d'éléments, D désignant le 'début' et B la 'borne' (notons que l'élément d'indice D est perdu) :
D< perdus> B
D perdus |
| ||||||||||||||||
Avant | I | I | ... | I | P | P | ... | P | D | D> | D | ... | D | I | I | ... | I |
Après | I | I | ... | I | D | D | D | ... | D | ... | I | I | ... | I | |||
Inchangés | Décalés | Nombre | Inchangés |
Suppression de lignes dans un tableau déroulant
début détermine la ligne où commence la suppression. le numéro de ligne commence à 0.
nombre désigne le nombre de ligne à supprimer à supprimer.
Pour que la ligne complète du tableau soit supprimée, on renseigne dans Liste_nom_var, la variable de bas de tableau.
Borne n'est pas à renseigner, si on veut un tassement de toutes les lignes vers le haut. si toutefois, cela est nécessaire, on peut avoir un tassement partiel ou pas de tassement en précisant dans 'borne' la dernière ligne à prendre en compte pour le tassement.
Attention, la variable de bas de tableau n'est pas mise à jour automatiquement par le moteur.