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.basdéclareFUNCTION 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#INSERTdé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
.basou.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.basn'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
IFd'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
#included'AGK a le même sens. LeXIncludeFilede 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 valuemain.bas
#INCLUDE "lib/math.bas"#INCLUDE "lib/math.bas"Console(Str(Clamp(15, 0, 10))) ' 10Dans le manuel : Le préprocesseur