Macros
Une macro est un support pour un texte dynamique. Si vous avez par exemple besoin de la date actuelle dans votre texte, vous pouvez soit changer votre texte tous les jours, soit utiliser une macro de date qui remplacera la macro de date par la date actuelle. Ce comportement rend la macro extrêmement puissante dans les outils qui nécessitent un texte dynamique.
Un texte de macro peut contenir à la fois des balises de macro et du texte ordinaire. Il peut contenir zéro, un ou plusieurs tags de macro.
Un champ de macro ressemble à un champ de texte normal. La seule différence est que le champ macro a un arrière-plan jaune alors que les champs de texte normaux ont un arrière-plan blanc.
Syntaxe
Une macro-étiquette commence et se termine par un signe de pourcentage (%). Le nom de la macro est trouvé immédiatement après le premier signe de pourcentage.
Exemple de macro simple
La macro du chemin de fichier d'un certain fichier s'appelle 'FILE_PATH'. La macro est écrite comme
%CHEMIN DU FICHIER%
L'exemple ci-dessus contient une macro 'simple'. Les macros simples ont seulement un nom. Il existe cependant des macros 'complexes' qui nécessitent un peu d'informations supplémentaires pour être traitées correctement. Beaucoup de macros ont à la fois une version simple et au moins une version complexe.
Les macros complexes sont écrites comme la macro simple avec une partie supplémentaire où les paramètres sont écrits. Les paramètres sont écrits immédiatement après le nom de la macro entre parenthèses ([et]).
Exemple de macro complexe:
La macro pour la date actuelle est appelée "D".
Cette macro a la forme simple% D%
Il existe une alternative étendue à la macro de date où le format de la date actuelle
peut être entré (en savoir plus sur les formats dans la spécification de macro), par ex.
% D [aaaa-MM]%
Les macros complexes peuvent avoir un ou plusieurs paramètres. Dans l'exemple ci-dessus, la macro de date utilise un paramètre dans le formulaire complexe pour indiquer le format de la date qui doit être le résultat. Si plus d'un paramètre est utilisé, chaque paramètre est séparé par une virgule (,)
Un exemple de paramètre:
La date macro a une version où la date de résultat peut être la date actuelle plus ou moins un
certain nombre de jours. Si nous voulons ajouter un jour et que le résultat soit sur le format
aaaa-MM-jj la macro serait:
% D [+ 1, aaaa-MM-jj]%
Caractères de macro spéciaux
Une macro est construite avec quatre caractères spéciaux;
Signe de pourcentage:%
Support gauche: [
Support droit:]
Caractère de virgule:,
Les paramètres d'une macro peuvent être construits avec d'autres macros qui, à leur tour, peuvent contenir plus de macros, etc. Les paramètres d'une macro ne peuvent contenir aucun des quatre caractères spéciaux sauf si une nouvelle macro est spécifiée. Aucun des quatre caractères spéciaux ne peut être utilisé directement en tant que simple texte dans une macro, à la place les remplacements suivants peuvent être utilisés pour obtenir les caractères en sortie;
Signe de pourcentage: %%
Support de gauche:% CHAR [91]%
Support droit:% CHAR [93]%
Caractère de virgule:%,
Notez que cette restriction d'utilisation des quatre caractères n'est nécessaire que lorsque du texte statique est écrit dans le cadre d'une liste de paramètres d'une macro.
Caractères spéciaux dans la liste de paramètres macros
La macro LENGTH renvoie le nombre de caractères dans le paramètre, par ex. % LENGTH [le texte]% retournera '8' (l'espace entre le et le texte est également compté). Si le texte figurant dans le paramètre contient l'un des caractères spéciaux, il peut provoquer une erreur, par ex.
% LONGUEUR [100%]%.
Dans ce cas, le caractère% du texte peut être confondu avec un début de macro et entraîner une erreur. Pour pouvoir compter les caractères dans le texte '100%', nous devrons y échapper avec un caractère de pourcentage. La macro% LENGTH [100 %%]% renverra '4'.
Alternative au% d'échappement
Il existe une macro spéciale appelée CHAR qui retournera un caractère basé sur une valeur UTF. Ce macro peut être utilisé pour renvoyer un caractère spécial recherché. Si le texte '100%' est voulu, le texte de la macro pourrait être '100% CHAR [37]%'
Notez que la restriction de ne pas utiliser les caractères spéciaux dans la liste des paramètres de macros ne compte que lorsque les caractères sont utilisés directement. Si une macro est utilisée ce qui peut entraîner l'un des caractères spéciaux, ce ne sera pas une erreur.
Les macros renvoyant des caractères spéciaux sont correctes
En revenant aux exemples ci-dessus, nous voulons avoir une macro qui nous donne la longueur du texte '100%'. Nous utiliserons la macro CHAR pour représenter le caractère de pourcentage unique (nous aurions aussi pu utiliser '%%'). La macro finale (qui est ok et ne provoquera pas d'erreur) sera;
% LONGUEUR [100% CHAR [37]%]%
Notez que ce ne sera pas une erreur où vous pourriez avoir suspecté que la macro CHAR se traduira par un seul pour cent et ce serait alors une erreur lorsque la macro LENGTH voit le caractère de pourcentage unique. Les macros sont analysées de telle sorte que cette erreur ne se produira jamais.