GOSUB |
"Gosub" permet d'appeler un sous-programme à une étiquette donnée.
Gosub étiquette [From nom_trt]
Elément | Description | Restrictions |
étiquette pouvant être précédée du caractère '$'. | Doit être définie dans le traitement. | |
(3) |
'=' chaine | |
nom_d'OBJet désignant un traitement | Il doit exister | |
expression de type Char dont le résultat est une chaine | ||
(3) |
chemin absolu du traitement |
# 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"
"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) Instructionsdu sous-programme (4) Return |
(5)Instructions APRES Gosub
(6) End
Un sous-programme appelé par "Gosub" ne doit pas se terminer par un "End" mais par un "Return".
PLUMEM(31) | Plus de mémoire (peut arriver en cas deGosub récursif). |
ERRET(32) | Return ne correspondant pas à unGosub (arrive sur Return). |
PAFIC(20) | letraitement n'existe pas ou n'est pas accessible. |
Adonix X3(r) L4G |