#INCLUDE

Directive

Syntaxe

Remplace la directive par les lignes d'un module BASIC du projet, une seule fois par programme. Les demandes suivantes pour le même module sont ignorées.

#INCLUDE "<path>"
#INCLUDE("<path>")

Les éléments

<path>Le nom du module dans le projet, entre guillemets doubles, par exemple lib/math.bas. Il est cherché d'abord à côté du fichier qui contient la directive, puis depuis la racine du projet. / et \ séparent les dossiers, .. remonte d'un dossier. La casse est ignorée.

À savoir

  • Dans l'exemple, le module lib/math.bas déclare FUNCTION Clamp(value, low, high). Il est demandé deux fois et inclus une seule fois.
  • À utiliser pour les fichiers de déclarations : fonctions, TYPE, GLOBAL. Insérer un tel fichier deux fois avec #INSERT déclare tout deux fois, ce qui est refusé.
  • Le saut vaut d'un fichier à l'autre : un module déjà inclus par un autre module n'est pas inclus de nouveau.
  • Un chemin qui ne correspond à aucun module est une erreur de compilation sur la ligne de la directive : BASIC include file not found: <path>. Un fichier placé dans une branche #IF écartée n'est jamais lu et peut manquer.
  • Le compilateur ne lit jamais un chemin disque ni une URL. Un module se crée par File, New Script, BASIC Module, ou s'importe depuis un fichier .bas ou .agc. Son nom est son chemin.
  • Une directive par ligne, seule sur la ligne ; un commentaire ' en fin de ligne est accepté. Après un :, elle n'est pas refusée, mais elle reste telle quelle dans le texte et le programme ne démarre pas.
  • Sans les guillemets doubles, #INCLUDE lib/math.bas n'est pas refusé non plus : la compilation passe et le programme ne démarre pas.
  • C'est une simple insertion de texte, faite avant toute compilation. Dans un IF d'exécution, le fichier est inséré quelle que soit la condition. Pour écarter un fichier, entourez la directive d'un #IF.
  • Deux modules qui s'incluent l'un l'autre s'arrêtent sans erreur : la seconde demande est ignorée.
  • Le #include d'AGK a le même sens. Le XIncludeFile de PureBasic est refusé : écrivez #INCLUDE.

Exemple

lib/math.bas

FUNCTION Clamp(value, low, high)  IF value < low THEN EXITFUNCTION low  IF value > high THEN EXITFUNCTION highENDFUNCTION value

main.bas

#INCLUDE "lib/math.bas"#INCLUDE "lib/math.bas"Console(Str(Clamp(15, 0, 10)))   ' 10
Dans le manuel : Le préprocesseur