INSA

Sommaire


Insapermet d'insérer des éléments 'vides' dans des tableaux mono-dimensionnés, àpartir d'un indice donné.

 

Syntaxe

   Insadébut [ ,nombre [ , borne ] ] liste_nom_var

 

Paramètres

Elément

Description

Restrictions

début

Expression numérique entière de l'indicedans les tableaux à partir duquel se fait l'insertion

Le début doit :
- être au moins égal à la plus grande des bornes inférieures des tableaux ;
-  ne pas dépasser la plus petite des bornes supérieures des tableaux.

nombre

Expression numérique entière du nombred'éléments à insérer.

nombre > 0

borne

Expression numérique entière de l'indicedans les tableaux où se termine l'insertion.

La borne ne doit pas dépasser la pluspetite des bornes supérieures des tableaux.

liste_nom_var

Liste denom_var séparées par le caractère ','.

Aucune.

nom_var

nom_de_variable désignant le tableaudans lequel s'effectue l'insertion. Dans le cas d'un tableau déroulant, ils'agit de la variable de bas de tableau.

Aucune.

 

Exemples

   # Lecture des N premiersenregistrements du fichier CLIENT et
   # insertion des noms et clés (dansl'ordre des noms) dans 2 tableaux.
   # La variable MAX désigne la position dudernier élément des tableaux
    Local File CLIENT
    Char NOM (20) (N), CLE (4) (N)
    Local Shortint I, MAX : MAX = 0

   # (Suite de l'exemple précédent)
    Read [CLI]CODCLE First
    While MAX < dim(NOM) & fstat = 0      :# fin de tableau ou de fichier
        I = 0
        While NOM(I)<> "" & [F]NOM > NOM(I) : I += 1 : Wend
        If NOM(I)<> ""
          Insa I, 1 NOM, CLE
        Endif
        NOM(I) = [F]NOM
        CLE(I) = [F]CLE
        MAX  += 1
        Read[CLI]CODCLE Next
    Wend

   # Insertion de lignes dans un tableaudéroulant (dont la variable de
   # bas de tableau a pour nom NLI) selondes paramètres variables
   Insa [V]DEB, [V]NB,[V]FIN   [M]NLI

   # On dispose de 2 tableaux d'éléments(issus d'un jeu de libellés sur
   # des noms de pilotes de terminaux). 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

vt220

...

 

   # Supposons que l'on veuille y insérer2 éléments en 3ème position
   # (donc en rang 2) :

   Insa 2, 2 CAR, NOM

   # Le résultat de cette instructionsera :

 

0

1

2

3

4

5

6

7

...

CAR

A

A

H

I

V

V

...

NOM

ansi

at386

hp

ibm3151

vt200

vt220

...

 

   # Supposons maintenant que la borneait une valeur inférieure au
   # nombre d'éléments des tableaux :

 

0

1

2

3

4

5

...

CAR

A

A

H

V

...

NOM

ansi

at386

hp

vt220

...

   #             on"perd" les éléments I, ibm3151 et V, vt200
   #            et l'on garde ceux au-delà de la borne : V, vt220

 

Description et commentaires

Insapermet d'insérer des éléments 'vides' (1 par défaut) dans un ensemble detableaux monodimensionnés. Ces éléments valent zéro (valeur 0, date nulle ouchaîne vide) et sont non initialisés dans le cas d'un tableau déroulant. Dansla syntaxe de l'instruction, début détermine l'indice (commun à tous lestableaux) où commence l'insertion et nombre désigne le nombre d'éléments àinsérer.

Dans chaque tableau, les éléments sont décalés depuis 'début', d'un nombrede positions égal à 'nombre'. Les 'nombre' derniers éléments du tableau sontmis à zéro (la 'borne' par défaut est la fin du tableau).

Donner une valeur à 'borne' qui soit inférieure à la plus petite des bornesinférieures des tableaux (une valeur supérieure n'aurait pas de sens), signifieque l'on s'intéresse à une restriction du tableau. Dans ce cas on perd les'nombre' éléments placés juste avant 'borne', les éléments avant 'début' etaprès 'borne' étant inchangés. Le dessin qui suit simule l'insertion 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 'borne' est perdu) :

 

 

 

D

Perdus B

 

Avant

I

I

...

I

D

D

...

D

D

P

P

...

P

I

I

...

I

Après

I

I

...

I

 

 

...

 

D

D

...

D

D

I

I

...

I

 

Inchangés

Nombre

Décalés

Inchangés

Dans le cas  d'une insertion dans un tableau déroulant, le nom de la  variable  à  indiquer est celui de la variable de bas detableau ; elle désigne alors l'ensemble des variables du tableau déroulant.

 

Remarque

Dans  le  cas  d'une insertion de lignes dans un tableaudéroulant, la variable de bas de tableau n'est pas mise à jour.

 

Erreurs associées

Erreur

Description

ERMODE(10)

début,nombre ou borne n'est pas numérique.

ERINDI( 8)

L'undes indices sort des bornes de l'un des tableaux.

ERDOM(50)

nombre<= 0.

ERDIM(55)

L'unedes variables n'est pas mono-dimensionnée.

 

Mots-clés associés

SORTA - DELA


SOMMAIRE

Adonix X3(r) L4G
Copyright (c) Adonix 1999 - All rights reserved