5. Makros

Ein Makro ist ein Platzhalter für einen dynamischen Text. Wenn Sie z. B. das aktuelle Datum in Ihrem Text haben möchten, können Sie Ihren Text entweder täglich ändern oder Sie können ein Datumsmakro verwenden, das das Datumsmakro durch das aktuelle Datum ersetzt. Dieses Verhalten macht das Makro extrem leistungsfähig in Werkzeugen, die dynamischen Text benötigen.

Ein Makrotext kann sowohl Makro-Tags als auch regulären Text enthalten. Er kann Null, ein oder mehrere Makro-Tags enthalten.

Ein Makrofeld sieht ähnlich aus wie ein normales Textfeld. Der einzige Unterschied besteht darin, dass das Makrofeld einen gelben Hintergrund hat, während die regulären Textfelder einen weißen Hintergrund haben.

In diesem Bild sehen Sie zwei reguläre Textfelder (Root destination und Prefix), zwei Makro-Textfelder (Routing und File name) und einen Makro-Textbereich (Text).


Abbildung 13-1 Makrofelder.

5.1 Syntax

Ein Makro-Tag beginnt und endet mit einem Prozentzeichen (%). Der Makroname befindet sich unmittelbar nach dem ersten Prozentzeichen.

Beispiel für ein einfaches Makro

Das Makro für den Dateipfad für eine bestimmte Datei heißt 'FILE_PATH'. Das Makro wird als %FILE_PATH% geschrieben.

Das obige Beispiel enthält ein 'einfaches' Makro. Die einfachen Makros haben nur einen Namen. Es gibt aber auch 'komplexe' Makros, die ein wenig zusätzliche Informationen benötigen, um korrekt behandelt zu werden. Viele Makros haben sowohl eine einfache Version als auch mindestens eine komplexe Version.

Die komplexen Makros werden als einfaches Makro mit einem zusätzlichen Teil geschrieben, in dem die Parameter eingetragen sind. Die Parameter werden unmittelbar nach dem Makronamen in geraden Klammern ([ und ]). geschrieben.

Beispiel für ein komplexes Makro

Das Makro für das aktuelle Datum ist mit 'D'
benannt. Dieses Makro hat die einfache Form %D%

Es gibt eine erweiterte Alternative zum Datumsmakro, in dem das Format des aktuellen Datums eingegeben werden kann (lesen Sie mehr über die Formate in der Makro-Spezifikation), z. B. %D[yyyy-MM]%

Die komplexen Makros können einen oder mehrere Parameter haben. Im obigen Beispiel verwendet das Datumsmakro einen Parameter in der komplexen Form, um anzugeben, welches Format des Datums das Ergebnis sein soll. Wenn mehr als ein Parameter verwendet wird, wird jeder Parameter durch ein Komma (,) getrennt.

Makro mit mehr als einem Parameter

Das Datumsmakro hat eine Version, bei der das Ergebnisdatum das aktuelle Datum plus oder minus einer bestimmten Anzahl von Tagen sein kann. Wenn wir einen Tag hinzufügen wollen und wollen, dass das Ergebnis im Format yyyy-MM-dd vorliegt, dann wäre das Makro:

%D[+1,yyyy-MM-dd]%

5.2 Spezielle Makrozeichen

Ein Makro besteht aus vier Sonderzeichen, dem

  1. Prozentzeichen: %
  2. Linke Klammer: [
  3. Rechte Klammer: ]
  4. Kommazeichen: ,

Die Parameter in einem Makro können mit anderen Makros erstellt werden, die wiederum mehr Makros usw. enthalten können. Die Parameter eines Makros dürfen keines der vier Sonderzeichen enthalten, es sei denn, es wird ein neues Makro angegeben. Keines der vier Sonderzeichen darf direkt als einfacher Text in einem Makro verwendet werden, stattdessen können die folgenden Ersetzungen verwendet werden, um die Zeichen als Ausgabe zu erhalten;

  1. Prozentzeichen: %%
  2. Linke Klammer: %CHAR[91]%
  3. Rechte Klammer: %CHAR[93]%
  4. Kommazeichen: %,

Beachten Sie, dass diese Einschränkung der Verwendung der vier Zeichen nur notwendig ist, wenn statischer Text als Teil der Parameterliste eines Makros geschrieben wird.

Sonderzeichen in der Makro-Parameterliste

Das Makro LENGTH gibt die Anzahl der Zeichen im Parameter zurück, z. B. %LENGTH [der Text] % würde '8' zurückgeben (der Abstand zwischen dem und dem Text wird ebenfalls gezählt). Wenn der Text, der im Parameter steht, eines der Sonderzeichen enthält, kann es zu einem Fehler kommen, z. B. %LENGTH[100%]%.

In diesem Fall könnte das %-Zeichen im Text als Makrostart verwechselt werden und zu einem Fehler führen. Um die Zeichen des Textes '100%' zählen zu können, müssen wir ihn mit einem Prozentzeichen ausblenden. Das Makro %LENGTH[100%%]% liefert den Wert '4'.

 

Alternativ zum Ausblenden von %

gibt es ein spezielles Makro namens CHAR, das ein Zeichen zurückgibt, das auf einem UTF-Wert basiert. Dieses Makro kann verwendet werden, um ein gewünschtes Sonderzeichen zurückzugeben. Wenn der Text'100%' gewünscht wird, könnte der Makrotext'100%CHAR[37]%' lauten.

Beachten Sie, dass die Einschränkung, die Sonderzeichen in der Makroparameterliste nicht zu verwenden, nur dann gilt, wenn die Zeichen direkt verwendet werden. Wenn ein Makro verwendet wird, das zu einem der Sonderzeichen führen kann, ist dies kein Fehler.

Makros, die Sonderzeichen zurückgeben, sind in Ordnung

Wenn wir auf die obigen Beispiele zurückblicken, wollen wir ein Makro haben, das uns die Länge des Textes '100%' zurückgibt. Wir werden das Makro CHAR verwenden, um das einzelne Prozentzeichen darzustellen (wir hätten auch '%%' verwenden können). Das letzte Makro (das in Ordnung ist und keinen Fehler auslöst) ist:

%LENGTH[100%CHAR[37]%]%

Beachten Sie, dass dies kein Fehler ist, bei dem Sie vielleicht vermutet haben, dass das Makro CHAR ein einzelnes Prozent ergibt, und es wäre dann ein Fehler, wenn das Makro LENGTH das einzelne Prozentzeichen sieht. Die Makros werden so geparst, dass dieser Fehler nie auftritt.