Variablen

Dieses Dokument behandelt die folgenden Themen:


Eigene Variablen definieren

Wenn ein langes Wort oder Satzteil im Rohtext häufig vorkommt, können Sie es einer Variablen zuweisen. Anschließend brauchen Sie nur noch die Variable anzugeben.

.SV - Variable definieren

.SV variablenname=wert

Mit dieser Anweisung definieren Sie eine Variable und weisen ihr einen Wert zu. Beispiel:

.SV Name=Schmitt

Jede Variable muss einen eindeutigen Namen haben. Ein Variablenname (der Parameter vor dem Gleichheitszeichen) kann nur Buchstaben und Zahlen enthalten. Er muss mindestens ein Zeichen und kann höchstens 100 Zeichen lang sein. Der Variablenname darf nicht mit dem Variablenzeichen (siehe unten) beginnen und darf keine Leerzeichen enthalten. Zwischen Groß- und Kleinschreibung wird nicht unterschieden.

Der Parameter nach dem Gleichheitszeichen kann entweder ein Text (kann aus mehreren Wörtern bestehen und kann Leerzeichen enthalten) oder eine arithmetische Berechnung sein (siehe Arithmetische Berechnungen mit .SV).

  Maximaler Wert für Text Maximaler Wert für eine arithmetische Berechnung
Parameter nach dem Gleichheitszeichen 249 Zeichen 100 Zeichen
Zwischenergebnis CSIZE minus 10 (in KB) 31 Stellen
Endergebnis CSIZE minus 10 (in KB) 29 Stellen

Anmerkungen:

  1. Ab Con-form Version 3.4.1 darf der maximale Wert für Text 100 Zeichen überschreiten. In vorhergehenden Versionen war dies auf 100 Zeichen beschränkt.
  2. CSIZE ist die Größe des Con-nect-Buffers. Der Administrator definiert dies im Natural-Parametermodul NATPARM. Der maximale Wert für CSIZE kann 512 KB betragen. Somit können 502 KB als Maximum für das Zwischenergebnis und das Endergebnis benutzt werden.

Zwischen den Variablen, die Text enthalten, und Variablen, die numerische Werte enthalten, wird kein Unterschied gemacht. Eine Variable kann zu einem Zeitpunkt Text enthalten und später einen numerischen Wert. Der Typ des aktuellen Wertes einer Variablen wird durch die letzte .SV-Anweisung bestimmt, die dieser Variablen einen Wert zuwies.

Eine Variable im Dokumenttext benutzen

Nachdem Sie eine Variable mit der Anweisung .SV definiert haben, können Sie sie im Rohtext verwenden. Vor der Variablen müssen Sie das Variablenzeichen angeben. Anfänglich ist das Variablenzeichen das kaufmännische Und (&). Beispiel:

&Name

Beim Formatieren des Dokuments wird die Variable durch den definierten Wert ersetzt.

Die Ersetzung (siehe die Anweisung .SU) wird von der Anweisung .SV automatisch eingeschaltet. Das bedeutet, dass der Text, der dem Variablenzeichen folgt, als Variable interpretiert und durch den entsprechenden Wert ersetzt wird.

Textzuweisungen

Sie können beliebig viele Variablen und Textzuweisungen definieren.

Um eine Zeichenkette oder eine andere Variable direkt nach der Variablen auszugeben (ohne Leerzeichen dazwischen), müssen Sie nach der ersten Variablen einen Punkt (.) angeben. Der Punkt ist nicht erforderlich nach einer Zeichenkette, auf die eine Variable folgt. Beispiel:

.SV var1=Blumen
.SV var2=kohl
.SV dm=200
&var1.&var2
&var1.strauß
Rosen&var2
&dm DM

Die formatierte Ausgabe sieht folgendermaßen aus:

Blumenkohl
Blumenstrauß
Rosenkohl
200 DM

Zusammengesetzte Variablennamen

Eine Variable kann gebildet werden, indem ein zusammengesetzter Name aufgelöst wird.

Ein zusammengesetzter Name enthält zwei oder mehrere einfache Variablen und wird aufgelöst, indem der Wert jeder Variablen eingesetzt wird. Dabei wird von rechts nach links vorgegangen. Beispiel:

.SV V1wecken=Guten Morgen
.SV V2Nacht=wecken
.SV V3=Nacht
&V1&V2&V3

Die formatierte Ausgabe sieht folgendermaßen aus:

Guten Morgen

Die Variable im obigen Beispiel wird von rechts nach links in aufeinander folgenden Schritten aufgelöst:

&V1&V2&V3
&V1&V2Nacht
V1wecken
Guten Morgen

Satzzeichen nach einer Variablen

Um nach einer Variablen ein Satzzeichen auszugeben, müssen Sie einen Punkt (.) gefolgt vom gewünschten Satzzeichen eingeben. Um z.B. einen Satz mit einem Punkt abzuschließen, müssen Sie den Punkt doppelt angeben:

.SV text=In diesem Fall müssen Sie den Punkt wiederholen
&text..
.SV bsp=Diesem Text folgt ein Semikolon
&bsp.;

Die formatierte Ausgabe sieht folgendermaßen aus:

In diesem Fall müssen Sie den Punkt wiederholen.
Diesem Text folgt ein Semikolon;

Arithmetische Berechnungen mit .SV

Der Parameter der Anweisung .SV kann ein numerischer Wert sein. Sie können eine ganze Zahl, eine gebrochene Zahl mit Dezimalzeichen oder eine Zahl mit einem Tausendertrennzeichen angeben (siehe die Anweisung .OP TRI).

Sie können die folgenden arithmetischen Operatoren benutzen:

+ Addition
- Subtraktion
* Multiplikation
/ Division

Die Anweisung .SV führt die Berechnung von links nach rechts aus. Alle Operatoren haben die gleiche Priorität. Klammern werden nicht ausgewertet.

Tipp:
Es wird empfohlen, dass Sie bei arithmetischen Berechnungen die Anweisung .CV benutzen. Mit dieser Anweisung werden Klammern ausgewertet. Siehe .CV - Variable berechnen.

Sie können gebrochene Zahlen angeben. Wenn Sie jedoch die Anzahl der Stellen nach dem Dezimalzeichen nicht definieren (siehe die Anweisung .OP DAS), wird das Ergebnis auf die nächste ganze Zahl gerundet. Beispiel:

.SV zahl1=2.5*3+2
Die Variable zahl1 hat den Wert &zahl1
.OP DAS=2
.SV zahl2=2.5*3+2
Die Variable zahl2 hat den Wert &zahl2

Die formatierte Ausgabe sieht folgendermaßen aus:

Die Variable zahl1 hat den Wert 9
Die Variable zahl2 hat den Wert 9.50

Vorsicht:
Sie müssen die Anweisung .OP DAS vor der Anweisung .SV angeben. Andernfalls wird das Ergebnis nicht wie gewünscht gerundet.

Sie können den Wert eines Parameters ändern. Beispiel:

.SV zähler=11
.SV zähler=&zähler+1
&zähler

Die formatierte Ausgabe sieht folgendermaßen aus:

12

Anfänglich wird das Divisionsergebnis auf die nächste ganze Zahl gerundet. Wenn Sie jedoch angeben, wie viele Stellen nach dem Dezimalzeichen ausgegeben werden sollen (siehe die Anweisung .OP DAS), wird das Ergebnis entsprechend gerundet. Beispiel:

.OP DAS=2
.SV zahl=2/3
&zahl

Die formatierte Ausgabe sieht folgendermaßen aus:

0.67

Arithmetische Berechnungen

Es wird empfohlen, dass Sie bei arithmetischen Berechnungen die Anweisung .CV benutzen. Im Gegensatz zur Anweisung .SV werden hiermit Klammern ausgewertet.

.CV - Variable berechnen

.CV variablenname=arithmetischer-ausdruck

Sie können eine Variable definieren und deren Wert anschließend mit einem arithmetischen Ausdruck berechnen. Ein arithmetischer Ausdruck besteht aus einer oder mehreren Konstanten, Variablen oder Systemvariablen.

Eine Konstante ist eine ganze Zahl, eine gebrochene Zahl mit Dezimalzeichen, oder eine Zahl mit einem Tausendertrennzeichen (siehe die Anweisung .OP TRI). Arithmetische Operatoren (siehe unten) dürfen nicht als Tausendertrennzeichen verwendet werden. Eine Konstante darf nicht mehr als 29 Stellen haben. Nach dem Dezimalzeichen dürfen nicht mehr als 7 Stellen stehen. Beispiel:

.OP TRI=','
.CV const1=15
.CV const2=0.123
.CV const3=1234567890123456789012.1234567
.CV const4=1,999

Eine Variable in einem arithmetischen Ausdruck muss einen numerischen Wert haben. Diese Variable muss vorher mit der Anweisung .SV oder .CV definiert werden.

Eine Systemvariable kann in einem arithmetischen Ausdruck verwendet werden, wenn sie einen numerischen Wert hat.

Sie können die folgenden arithmetischen Operatoren benutzen:

() Klammern
* Multiplikation
/ Division
+ Addition
- Subtraktion

Klammern werden ausgewertet. Eine arithmetische Operation wird in folgender Reihenfolge ausgeführt:

  1. Klammern

  2. Multiplikation und Division (von links nach rechts)

  3. Addition und Subtraktion (von links nach rechts)

Wenn der Divisor 0 ist, ist das Divisionsergebnis 0.

Wenn das Ergebnis einer Berechnung mit .CV zu einem Datenüberlauf führt, wird die Variable mit 5 Sternen (*****) gefüllt. Beispiel:

.CV var1=-25000
&var1
.CV var2=15-5+4/2-10
&var2
.CV var3=(1+2) * 3/ (1+8)
&var3
.CV var4=&var1+100000
&var4
.CV var5= 1000000000000000 * 1000000000000000
.IF &var5 = *****
.TH
Ihr Ergebnis ist zu groß
.EL
&var5
.EI

Die formatierte Ausgabe sieht folgendermaßen aus:

-25000
2
1
75000
Ihr Ergebnis ist zu groß

Genauigkeit der Resulte von Arithmetischen Operationen

Die folgende Tabelle gibt eine Übersicht über die Genauigkeitsregeln, die in einer arithmetischen Berechnung mit .CV verwendet werden.

Operation Stellen vor Dezimalzeichen Stellen nach Dezimalzeichen (Zwischenergebnis) Stellen nach Dezimalzeichen (Endergebnis)
Addition/Subtraktion Fi + 1 oder Si + 1 (je nachdem was größer ist) Fd oder Sd (je nachdem was größer ist, Maximum 7) DAS und RND werden beim letzten Zwischenergebnis angewendet.
Multiplikation Fi + Si + 2 Fd + Sd (Maximum 7)
Division Fi + Sd Bei .OP REM=OFF: Fd oder Wert der Option DAS (je nachdem was größer ist, Maximum 7). Bei .OP RND=ON wird diese Anzahl der Stellen zusätzlich intern erhöht (+1).
Bei .OP REM=ON: Wert der Option DAS. Dieser Wert wird auch für den Rest benutzt.

In dieser Tabelle werden folgende Abkürzungen benutzt:

F Erster Operand.
S Zweiter Operand.
i Stellen vor Dezimalzeichen.
d Stellen nach Dezimalzeichen.

Die Stellen nach dem Dezimalzeichen werden bei Zwischen- und Endergebnis unterschiedlich behandelt. Zwischenergebnisse sind arithmetische Operationen vor Runden und Anwenden der Option DAS. Das Endergebnis ist das letzte Zwischenergebnis nach Runden und Anwenden der Option DAS.

Beim Endergebnis (formatierte Ausgabe) werden die Stellen nach dem Dezimalzeichen durch die Option DAS bestimmt.

Bei .OP RND=ON wird gerundet. Bei .OP RND=OFF werden die letzten Stellen abgeschnitten.

Bei .OP REM=ON wird das Divisionsergebnis nicht gerundet (unabhängig von der Einstellung für .OP RND).

Beispiel:

.OP DAS=0
.OP RND=ON
.CV  VAR=(3+5.25) / 1.5 - 4

Das Endergebnis dieser Berechnung ist 2. Die jeweiligen Zwischenergebnisse können Sie der folgenden Tabelle entnehmen:

  Operation Ergebnis
Zwischenergebnis 1 3+5.25 8.25
Zwischenergebnis 2 8.25/1.5 5.500 (wegen .OP RND=ON wird die Anzahl der Stellen nach dem Dezimalzeichen intern erhöht (+1)).
Zwischenergebnis 3 5.500-4 1.500
Endergebnis DAS und RND anwenden 2

.OP RND - Ergebnis von .CV runden

.OP RND=ON
.OP RND=OFF

Diese Option kann nur zusammen mit .CV verwendet werden.

Anfänglich wird das Ergebnis von .CV auf die nächste ganze Zahl aufgerundet. Dies entspricht der Anweisung:

.OP RND=ON

Beispiel:

.OP DAS=3
.OP RND=ON
.CV var1=0 + 0.2555
&var1
.OP RND=OFF
.CV var2=0 + 0.2555
&var2

Die formatierte Ausgabe sieht folgendermaßen aus:

0.256
0.255

.OP REM - Rest bei Division mit .CV

.OP REM=ON
.OP REM=OFF

Diese Option kann nur zusammen mit .CV verwendet werden.

Anfänglich ist diese Option ausgeschaltet. Dies entspricht der Anweisung:

.OP REM=OFF

Wenn der Divisionsrest an die veränderbare Systemvariable $RR übergeben werden soll, müssen Sie Folgendes angeben:

.OP REM=ON

Der anfängliche Wert von $RR ist 0 (Null).

Das Divisionsergebnis wird nicht gerundet (unabhängig von der Einstellung für .OP RND). Das Restformat ist abhängig von den Optionen, die mit den Anweisungen .OP DAS und .OP TRI angegeben wurden.

Beispiel:

.OP DAS=2
.OP REM=ON
&$RR
.CV zahl=2/3
&zahl
&$RR

Die formatierte Ausgabe sieht folgendermaßen aus:

0
0.66
0.02

Textfunktionen

In Verbindung mit der Anweisung .SV oder .CV können Sie Textfunktionen verwenden. Nach dem Funktionscode müssen Sie immer einen Apostroph (') angeben.

Textfunktionen können auch mit den Anweisungen .IF und .WH benutzt werden.

Es gibt folgende Textfunktionen:

Code Erklärung Beispiel
E Prüfen, ob die angegebene Variable existiert. Der Parameter ist der Name einer Variablen. Wenn die Variable existiert, wird der Wert 1 ausgegeben; wenn sie nicht existiert, der Wert 0.
.SV var=Schmitt
.SV test=var
Wenn die Variable "var" 
existiert, wird 1, 
andernfalls 0 ausgegeben: 
&E'&test
H Eine Zeichenkette in einen Hexadezimalwert konvertieren. Der Parameter kann eine beliebige Zeichenkette sein. Jedes darin enthaltene Zeichen wird in den entsprechenden EBCDIC Hexadezimalwert konvertiert.
.SV var=H'123
Der hexadezimale Wert
von 123 ist &var.
.SV name=Schmitt
Der hexadezimale Wert
von Schmitt ist &H'&name.
I Die Richtung, in der die Zeichenkette verarbeitet wird, ändern. Der Parameter ist eine beliebige Zeichenkette. Die Richtung, in der der Inhalt der Variablen interpretiert wird, wird geändert.
.SV abc=xyz
.SV def=I'&abc
Der invertierte Wert ist
&def (zyx).
L Eine Zeichenkette in Kleinbuchstaben umwandeln. Der Parameter ist eine beliebige Zeichenkette. Jeder Großbuchstabe in der Zeichenkette wird durch den entsprechenden Kleinbuchstaben ersetzt. Andere Zeichen bleiben unverändert.
.SV var=HEUTE
Nicht vergessen:
&L'&var ist ein Feiertag.
N Die Länge einer Zeichenkette bestimmen. Der Parameter ist eine beliebige Zeichenkette. Die Anzahl der Zeichen wird ausgegeben.
.SV Datum=3.11.00
Die Länge dieser
Zeichenkette ist &N'&Datum
R Einen Parameter in eine römische Zahl konvertieren. Der Parameter ist eine Dezimalzahl ohne Vorzeichen. Die entsprechende römische Zahl in Großbuchstaben wird ausgegeben.
.SV Jahr=R'2000
&Jahr wird ein
wundervolles Jahr werden.
.SV Band=8
Gib mir Band
&R'&Band der Enzyklopädie.
U Eine Zeichenkette in Großbuchstaben umwandeln. Der Parameter ist eine beliebige Zeichenkette. Jeder Kleinbuchstabe in der Zeichenkette wird durch den entsprechenden Großbuchstaben ersetzt. Andere Zeichen bleiben unverändert.
.SV var=Schmitt
Bitte rufen Sie dringend
Herrn &U'&var an.
X Einen Hexadezimalwert in ein Zeichen konvertieren. Der Parameter muss ein einstelliger Hexadezimalwert sein. Er wird in das entsprechende Zeichen konvertiert.
.SV hex=C5
Der hexadezimale Wert C5
entspricht dem Wert &X'&hex
.SV hexa=X'C5
Der hexadezimale Wert C5
entspricht dem Wert &hexa

Eine Textfunktion als Parameter angeben

Sie können eine Textfunktion als Parameter der Anweisung .SV oder .CV angeben. Dazu müssen Sie den entsprechenden Funktionscode gefolgt vom Parameter angeben. Sie können dann die Variable in den laufenden Text einfügen; direkt vor der Variablen muss das Variablenzeichen stehen. Anfänglich ist das Variablenzeichen das kaufmännische Und (&). Beispiel:

.SV var=H'123
Der hexadezimale Wert von 123 ist &var

Die formatierte Ausgabe sieht folgendermaßen aus:

Der hexadezimale Wert von 123 ist F1F2F3

Eine Textfunktion im laufenden Text angeben

Wenn Sie eine Textfunktion im laufenden Text angeben, müssen Sie vor dem Funktionscode das Variablenzeichen angeben. Außerdem müssen Sie nach der Textfunktion eine definierte Variable angeben. Auch vor der Variablen muss das Variablenzeichen stehen. Anfänglich ist das Variablenzeichen das kaufmännische Und (&). Beispiel:

.SV var=123
Der hexadezimale Wert von 123 ist &H'&var

Die formatierte Ausgabe sieht folgendermaßen aus:

Der hexadezimale Wert von 123 ist F1F2F3

Dezimalzahlen

Mit den folgenden Optionen können Sie angeben, wie Dezimalzahlen ausgegeben werden sollen, wenn mit Hilfe von Variablen arithmetische Berechnungen durchgeführt werden.

.OP DAS - Stellen nach Dezimalzeichen

.OP DAS=zahl

Anfänglich wird das Ergebnis einer arithmetischen Berechnung auf die nächste ganze Zahl auf- oder abgerundet. Um dies zu vermeiden, können Sie angeben, wie viele Stellen nach dem Dezimalzeichen ausgegeben werden sollen. Das Dezimalzeichen wird mit der Anweisung .OP DEC definiert (siehe unten).

Um z.B. nach dem Dezimalzeichen 2 Stellen auszugeben, geben Sie an:

.OP DAS=2

Sie können bis zu 7 Zeichen hinter dem Dezimalzeichen angeben.

Das Dezimalzeichen wird nicht automatisch eingefügt, wenn Sie die Anweisung .SV oder .CV wie im folgenden Beispiel angeben:

.OP DAS=2
.SV zahl=1
&zahl

Die formatierte Ausgabe sieht folgendermaßen aus:

1

Um die obige Variable mit Dezimalzeichen auszugeben, müssen Sie den folgenden zusätzlichen Berechnungsschritt ausführen:

.OP DAS=2
.SV zahl=1+0
&zahl

Die formatierte Ausgabe sieht folgendermaßen aus:

1.00

.OP DEC - Dezimalzeichen definieren

.OP DEC=zeichen

Anfänglich wird das in Natural definierte Dezimalzeichen benutzt. Standardmäßig ist dies der Punkt (.). Sie können das Dezimalzeichen ändern. Um z.B. das Komma als neues Dezimalzeichen zu definieren, geben Sie an:

.OP DEC=','

Da das Komma bei bestimmten Con-form-Anweisungen als Parametertrennzeichen benutzt wird, ist es wichtig, es wie im obigen Beispiel in Apostrophe einzuschließen. Wenn Sie z.B. den Schrägstrich definieren möchten, brauchen Sie keine Apostrophe anzugeben (.OP DEC=/).

.OP TRI - Tausendertrennzeichen definieren

.OP TRI=zeichen
.OP TRI=ON
.OP TRI=OFF

Anfänglich ist kein Tausendertrennzeichen definiert.

Sie können das Zeichen angeben, das als Trennzeichen für Tausender benutzt werden soll. Um z.B. das Komma als Tausendertrennzeichen zu definieren, geben Sie an:

.OP TRI=','

Da das Komma bei bestimmten Con-form-Anweisungen als Parametertrennzeichen benutzt wird, ist es wichtig, es wie im obigen Beispiel in Apostrophe einzuschließen. Wenn Sie z.B. den Schrägstrich definieren möchten, brauchen Sie keine Apostrophe anzugeben (.OP TRI=/).

Das Tausendertrennzeichen wird in der formatierten Ausgabe in Ergebnissen von arithmetischen Berechnungen ausgegeben. Es erscheint nicht, wenn das Ergebnis der Anweisung .SV oder .CV wie im folgenden Beispiel ausgegeben wird:

.OP TRI=.
.SV zahl=2000
&zahl

Die formatierte Ausgabe sieht folgendermaßen aus:

2000

Um diese Zahl mit dem Tausendertrennzeichen auszugeben, müssen Sie einen zusätzlichen Berechnungsschritt ausführen:

.OP TRI=.
.SV zahl=2000+0
&zahl

Die formatierte Ausgabe sieht folgendermaßen aus:

2.000

Wenn Sie das Tausendertrennzeichen nicht mehr verwenden wollen, können Sie es mit der folgenden Anweisung deaktivieren:

.OP TRI=OFF

Wenn Sie das vorher definierte, deaktivierte Tausendertrennzeichen wieder verwenden wollen, können Sie es mit der folgenden Anweisung wieder aktivieren:

.OP TRI=ON

Wenn Sie .OP TRI=ON angeben und vorher noch kein Tausendertrennzeichen definiert wurde, wird standardmäßig das Komma verwendet.

Das Variablenzeichen

Das Variablenzeichen muss vor allen Variablen im Rohtext (d.h. Systemvariablen und Variablen, die mit der Anweisung .SV oder .CV definiert wurden) angegeben werden. Bei Bedarf können Sie auch ein anderes Variablenzeichen definieren oder die Erkennung des Variablenzeichens ausschalten.

.OP VSG - Variablenzeichen definieren

.OP VSG=zeichen

Diese Anweisung definiert das Zeichen, das benutzt wird, um Text und Variablen zu unterscheiden.

Anfänglich ist das kaufmännische Und (&) das Variablenzeichen. Sie können das Zeichen ändern. Um z.B. das Paragrafenzeichen (§) als Variablenzeichen zu definieren, geben Sie an:

.OP VSG=§

Es ist nicht möglich, das Dollarzeichen ($) als Variablenzeichen für Systemvariablen zu definieren. Daher ist es nicht möglich, z.B. $$PL anzugeben. Sie können jedoch Folgendes angeben:

.SV PL=&$PL
.OP VSG=$
$PL

.SU - Ersetzung

.SU ON
.SU OFF

Wenn die Ersetzung eingeschaltet ist, wird jede Zeichenkette im Rohtext, vor der das Variablenzeichen steht, als Variable interpretiert und entsprechend ersetzt.

Anfänglich ist die Ersetzung ausgeschaltet. Sie wird durch die Anweisung .SV oder .CV automatisch eingeschaltet. Dies entspricht der Anweisung:

.SU ON

Die Ersetzung wird auch durch Makroaufrufe mit Parametern eingeschaltet. Sie wird nicht eingeschaltet, wenn ein Makro ohne Parameter aufgerufen wird.

Sie können die Ersetzung ausschalten. Dies ist erforderlich, wenn der Rohtext das Variablenzeichen als Text enthalten soll, d.h. wenn das Variablenzeichen nicht als solches interpretiert werden soll.

Um die Ersetzung auszuschalten, geben Sie an:

.SU OFF

Systemvariablen

Außer den Variablen, die Sie selbst definieren (mit der Anweisung .SV oder .CV), können Sie im Rohtext auch Systemvariablen verwenden. Systemvariablen enthalten Werte wie z.B. Datum und Uhrzeit oder die aktuellen Ränder des Textes.

Wenn Sie eine Systemvariable angeben, müssen Sie direkt davor das Variablenzeichen eingeben. Anfänglich ist das kaufmännische Und (&) das Variablenzeichen. Um z.B. die Systemvariable $DT zu benutzen, geben Sie an:

&$DT

Sie können eine Variable nicht nur im laufenden Text einfügen, sondern sie auch in den Anweisungen .IF und .WH benutzen.

Feste Systemvariablen

Es gibt Systemvariablen, die nicht verändert werden können. Con-form ersetzt diese Variablen beim Formatieren des Dokuments automatisch durch ihren aktuellen Wert.

Variable Erklärung Wert
$CN Jahrhundert (die ersten beiden Zahlen des Jahres) 19 oder 20
$DA Tageszahl 1 bis 31
$DD Tagesname in Dänisch Mandag...Søndag
$DF Tagesname in Französisch Lundi...Dimanche
$DG Tagesname in Deutsch Montag...Sonntag
$DN Tagesname in Englisch Monday...Sunday
$DT Datum Bei den Monaten 1 bis 9 steht vor der Monatszahl ein Leerzeichen (z.B. 1. 9.94). tt.mm.jj
$DY Julianisches Datum 1 bis 366
$HO Stunde 00 bis 23
$MD Monatsname in Dänisch Januar...December
$MF Monatsname in Französisch Janvier...Décembre
$MG Monatsname in Deutsch Januar...Dezember
$MI Minute 00 bis 59
$MN Monatsname in Englisch January...December
$MO Monatsnummer 1 bis 12
$SE Sekunde 00 bis 59
$YE Jahr 00 bis 99

Das folgende Beispiel zeigt, wie diese Systemvariablen benutzt werden:

Das aktuelle Datum ist: &$DG., &$DA.. &$MG &$CN.&$YE..

Die formatierte Ausgabe sieht folgendermaßen aus:

Das aktuelle Datum ist: Mittwoch, 25. Oktober 2000.

Veränderbare Systemvariablen

Die folgenden Variablen können für komplexe Formatierungen benutzt werden. Sie sind anfänglich mit vorgegebenen Werten belegt. Mit den Anweisungen, die in der folgenden Tabelle in der rechten Spalte aufgeführt sind, werden die Systemvariablen geändert.

Variable Erklärung Geändert durch
$BM Leerzeilen nach der Fußzeile .BM
$CH Kapitelnummer .CH, .SC
$FM Abstand zwischen Text und Fußzeile .FM
$FN Fußnotenzähler Die Variable $FN wird jedes Mal erhöht, wenn sie referenziert wird. Sie dient zur fortlaufenden Nummerierung der Fußnoten.  
$FS Zeilenreservierung für Fußzeile .FS
$HM Abstand zwischen Titelzeile und Text .HM
$HS Zeilenreservierung für Titelzeile .HS
$IN Einzug .LM, .OF, .TI, .CS
$IX Letzter Indexeintrag .IX
$LC Restliche Zeilen auf der Seite .SV, .LS
$LL Zeilenlänge .LL, .CS
$PL Seitenlänge .PL, .LS
$PN Aktuelle Seitenzahl. Beim Ersetzen der Variablen $PN werden arabische Seitenzahlen benutzt. Mit der Anweisung .SV oder .CV sowie in der Titel- und Fußzeile können Sie anstelle von $PN das Seitenzahlzeichen (anfänglich das Nummernzeichen (#)) benutzen. In diesem Fall wird die Seitenzahl immer Ihren Angaben entsprechend (entweder arabisch oder römisch) ausgegeben. .NP, .PN
$RM Rechter Rand .RM, .CS
$RR Divisionsrest wenn .OP REM=ON .CV
$TM Leerzeilen über der Titelzeile .TM

Diese Systemvariablen geben Werte zurück, die von Con-form intern gespeichert wurden. Es ist jedoch nicht gewährleistet, dass die Systemvariablen in verschiedenen Umgebungen und mit verschiedenen Versionen von Con-form immer die gleichen Ergebnisse liefern.

Das folgende Beispiel zeigt, wie veränderbare Systemvariablen eingesetzt werden. Es verwendet außerdem die Anweisung .IF.

Wenn auf der aktuellen Seite weniger als 5 Zeilen verfügbar sind,
wird der Rahmen auf der nächsten Seite ausgegeben. Die aktuelle
Seitenzahl wird im Rahmen ausgegeben.
.SL 1
.IF &$LC < 5;.NP
.BX 10,55
.LM 10;.RM 54
.IL 1;.CE 1
Dieser Rahmen wird auf Seite &$PN ausgedruckt.
.IL 1;.BX OFF

Die formatierte Ausgabe sieht folgendermaßen aus:

Wenn auf der aktuellen Seite weniger als 5 Zeilen verfügbar sind,
wird der Rahmen auf der nächsten Seite ausgegeben. Die aktuelle
Seitenzahl wird im Rahmen ausgegeben.

         +--------------------------------------------+
         !                                            !
         !Dieser Rahmen wird auf Seite 1 ausgedruckt. !
         !                                            !
         +--------------------------------------------+