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.bas contient la seule ligne count = 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 avec Ambiguous BASIC overload.
  • #INSERT ne compte pas pour #INCLUDE : un fichier déjà inséré est quand même apporté une fois par un #INCLUDE placé 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 IF d'exécution, les lignes sont toujours insérées ; seule leur exécution dépend de la condition.
  • Le #insert d'AGK a le même sens. IncludeFile() est la même directive sous le nom de PureBasic.

Exemple

snippets/tick.bas

count = count + 1

main.bas

count = 0#INSERT "snippets/tick.bas"#INSERT "snippets/tick.bas"Console(Str(count))   ' 2
Dans le manuel : Le préprocesseur