Syntaxe
Remplace la directive par les lignes d'un module BASIC du projet, à chaque fois qu'elle apparaît.
#INSERT "<path>"
#INSERT("<path>")Les éléments
| <path> | Le nom du module dans le projet, entre guillemets doubles, par exemple snippets/tick.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
snippets/tick.bascontient la seule lignecount = count + 1. Il est inséré deux fois, donc il s'exécute deux fois. - À utiliser pour un morceau de code à répéter. Pour un fichier de déclarations, utilisez
#INCLUDE: une fonction insérée deux fois est refusée avecAmbiguous BASIC overload. #INSERTne compte pas pour#INCLUDE: un fichier déjà inséré est quand même apporté une fois par un#INCLUDEplacé plus loin.- Deux modules qui s'insèrent l'un l'autre provoquent une erreur de compilation qui nomme la chaîne :
Cyclic BASIC include: loop/a.bas -> loop/b.bas -> loop/a.bas. - Un chemin qui ne correspond à aucun module est une erreur de compilation :
BASIC include file not found: <path>. Les erreurs à l'intérieur du module sont signalées avec le nom du module et son propre numéro de ligne. - Une directive par ligne, entre guillemets doubles. Après un
:ou sans les guillemets, elle n'est pas refusée, mais le programme ne démarre pas. - C'est une simple insertion de texte, faite avant toute compilation. Dans un
IFd'exécution, les lignes sont toujours insérées ; seule leur exécution dépend de la condition. - Le
#insertd'AGK a le même sens. IncludeFile() est la même directive sous le nom de PureBasic.
Exemple
snippets/tick.bas
count = count + 1main.bas
count = 0#INSERT "snippets/tick.bas"#INSERT "snippets/tick.bas"Console(Str(count)) ' 2Dans le manuel : Le préprocesseur