Section courante

A propos

Section administrative du site

CHAIN

Chaine
GWBASIC

Syntaxe

CHAIN [MERGE] nomfich[,[numéro de ligne][,ALL][,DELETE limites]]

Paramètres

Nom Description
MERGE Ce paramètre permet d'indiquer que le programme en cours sera fusionné avec le programme allant prendre le contrôle d'exécution
nomfich Ce paramètre permet d'indiquer le nom de fichier de code source Basic devant prendre le contrôle d'exécution
numéro de ligne Ce paramètre permet d'indiquer le numéro de ligne à lequel le fichier de code source Basic devant prendre le contrôle d'exécution
ALL Ce paramètre permet d'indiquer que tous le contenu des variables doit être transmis à programme prenant la relève de l'exécution
limites Ce paramètre permet d'indiquer une partie du code source à ne pas charger en mémoire

Description

Cette commande permet de transférer l'exécution à un autre programme de code source Basic.

Algorithme

MODULE CHAIN(nom_fichier, ligne_cible=None)
   SI nom_fichier n'existe pas ALORS
      Afficher une erreur "Fichier introuvable"
      RETOURNE
   FIN SI

   Sauvegarder les variables communes en mémoire (si elles sont définies avec COMMON SHARED)
   Arrêter le programme en cours

   Charger le programme nommé nom_fichier en mémoire
   SI ligne_cible est spécifiée ALORS
      Démarrer l'exécution à la ligne ligne_cible
   SINON
      Démarrer l'exécution à partir de la première ligne du programme
   FIN SI

Remarques

Exemples

Le numéro de ligne est un numéro de ligne ou une expression correspondant à un numéro de ligne dans le programme appelé. C'est le point de départ de l'exécution du programme appelé. Par exemple, ce qui suit commence l'exécution de PROG1.BAS à la ligne 1000 :

  1. 10 CHAIN "PROG1", 1000

Si numéro de ligne est omis, l'exécution commence à la première ligne. Le numéro de ligne n'est pas affectée par une commande RENUM. Cependant, les numéros de ligne dans l'intervalle spécifiée sont affectés par une commande RENUM. Par exemple, ALL spécifie que chaque variable du programme courant est chaînée au programme appelé :

  1. 20 CHAIN "PROG1", 1000, ALL

Si l'option ALL est omise, le programme en cours doit contenir une instruction COMMON pour répertorier les variables transmises.

CHAIN exécute un RESTORE avant d'exécuter le programme auquel il doit être chaîné. L'instruction READ obtient alors le premier élément de l'instruction DATA. La lecture ne reprendra pas là où elle s'était arrêtée dans le programme enchaîné.

Une fois qu'une superposition est exécutée et utilisée dans un but spécifique, il est généralement souhaitable de la supprimer afin qu'une nouvelle superposition puisse être introduite. Pour ce faire, utilisez la commande DELETE.

L'instruction CHAIN avec la commande MERGE laisse les fichiers ouverts et conserve le paramètre de base de l'option en cours.

Si la commande MERGE est omise, le paramètre OPTION BASE est conservé et CHAIN ne conserve aucun type de variable ou fonction définie par l'utilisateur à utiliser par le programme chaîné. Autrement dit, toute instruction DEFINT, DEFSNG, DEFDBL, DEFSTR ou DEF FN contenant des variables partagées doit être reformulée dans le programme chaîné.

Lors de l'utilisation de la commande MERGE, placez les fonctions définies par l'utilisateur avant toute instruction CHAIN MERGE dans le programme. Sinon, ils seront indéfinis une fois la fusion terminée.



Dernière mise à jour : Lundi, le 19 janvier 2015