L4G >  Gosub  

Afficher tout Masquer tout

"Gosub" permet d'appeler un sous-programme à une étiquette donnée.

Syntaxe

Gosub étiquette [From nom_trt]

Paramètres

Elément

Description

Restrictions

étiquette

étiquette pouvant être précédée du caractère '$'.

Doit être définie dans le traitement.

nom_trt (1)
        (2)
        (3)
nom_d'OBJet
'=' expr_c
chaine

spacer.gif (822 octets)

nom_d'OBJet

nom_d'OBJet désignant un traitement

Il doit exister

expr_c

expression de type Char dont le résultat est une chaine

spacer.gif (822 octets)

chaine (1)
       (2)
       (3)
nom_d'OBJet 
application"."nom_d'OBJet 
chemin absolu du traitement 

spacer.gif (822 octets)

 

Exemples

# Programme de gestion qui pourra être appelé par Gosub GESTION_ZONES
 $GESTION_ZONES
Gosub INIT_ZONES
  While 1
     Gosub SAISIE_CHOIX
     Case [M]CHOIX
       When 'E' : Gosub EFFACE_ZONE
       When 'F' : Gosub FIN_GESTION : Return
       When 'M' : Gosub MODIF_ZONE
       When 'C' : Gosub CREER_ZONE
       When Default : Gosub ERREUR_CHOIX
    Endcase
  Wend
 Return
# On veut être sûr de lancer le traitement "SECUR" de la premiére
 # application de référence et pas un autre
Gosub ETIQ From =adxmother(0)+".SECUR"

 

Description

"Gosub" permet de faire appel à un sous-programme défini ou non dans le même traitement. Un tel sous-programme est identifié par une étiquette. Son exécution s'arrête sur exécution de l'instruction "Return", et il redonne la main à l'instruction suivant le "Gosub".

Schématiquement, on a l'ordre d'exécution des instructions suivant, (les chiffres entre parenthèses indiquant cet ordre) :

(1) Gosub ETIQUETTE

(2) $ETIQUETTE

(3) Instructions du sous-programme

(4) Return

(5) Instructions APRES Gosub
(6) End

 

Remarques

Un sous-programme appelé par "Gosub" ne doit pas se terminer par un "End" mais par un "Return".

 

Erreurs associées

Erreur

Description

PLUMEM (31)

Plus de mémoire (peut arriver en cas de Gosub récursif).

ERRET (32)

Return ne correspondant pas à un Gosub (arrive sur Return).

PAFIC (20)

le traitement n'existe pas ou n'est pas accessible.

 

Mots-clés associés

SUBPROG - GOTO - RETURN - CALL