Makros sind benutzerdefinierte Platzhalter, die sich für die verschiedensten Dinge eignen.
Beim Befehl !macro geben Sie zunächst den Bezeichner des Makros an, dem sich der Ersetzungstext anschließt. Letzterer kann auch leer sein.
Um im Quelltext später den Inhalt eines Makros ausgeben zu lassen, geben Sie den Bezeichner des Makros mit einem führenden Ausrufezeichen und eingeschlossen in runde Klammern an.
Auch hier zunächst ein paar Beispiele:
!macro HTML Hypertext Markup Language !macro UDO (!B)U(!b)niversal (!B)Do(!b)cument !macro DOSG (!T)UDO6GDOS.LZH(!t) !ifdest [html] !macro PICPATH gif/ !else !macro PICPATH img/ !endif [...] Die (!HTML) ... Das (!UDO) Format ... Das Archiv (!DOSG) ... !image (!PICPATH)/tiger
Diese Makros könnten dazu benutzt werden, sich lästiges Abschreiben zu sparen oder Änderungen zu beschleunigen. Ein weiteres Anwendungsgebiet ist das Erstellen standardisierter Texte, deren Inhalt durch Makros an den jeweiligen Quelltext angepasst wird. Im folgenden Beispiel wird der Programmname in einen Disclaimer eingebaut, der per !include eingebunden wird:
[doku.u] !macro PRG Windows95 [disclaim.u] (!PRG) wurde umfangreichen Tests unterzogen. Die Benutzung erfolgt auf eigene Gefahr!
Seit UDO Release 6 können Makros auch Parameter übergeben
werden. Bei der Erzeugung eines Makros geben Sie dazu mit
(!1)
, (!2)
bis
(!9)
die Position der Parameter an. Um den
Makros im Text die Parameter zu übergeben, setzen Sie diese in eckige
Klammern.
Hier ein kleines (und zugegebenermaßen geschmackloses) Beispiel, bei dem ein Makro für die Ausgabe von Text mit mehreren Textstilattributen gleichzeitig definiert wird und später mit nur einem Parameter aufgerufen wird:
!macro BIU (!B)(!I)(!U)(!1)(!u)(!i)(!b) ... Dieser Text ist (!BIU [fett, kursiv und unterstrichen]).
Dieser Text ist fett, kursiv und unterstrichen.
Die Worte fett, kursiv und unterstrichen
werden bei der
Ausgabe dann an die Stelle von (!1)
gesetzt.
Hinweise:
Boder
nlnennen, da dann die Umschaltung in Fettschrift ((!B)) oder ein erzwungener Zeilenumbruch nicht mehr funktionieren.