`Register` 
`Interne Sondervariablen`  
cstring   (Abkürzung von "code string")    acon  
Die Befehle `variable` und `write`  werden dadurch zu äußerst mächtigen Instrumenten. Nur diese beiden Befehle können von cstrings Gebrauch machen!
Ein cstring  ist eine Folge von Code-Elementen, beliebig zusammengesetzt, wobei es sechs Typen von Elementen gibt, getrennt durch Leerzeichen:  

1. 	"xyz"	Zeichenfolgen, in "..."  oder  '...'  eingeschlossene druckbare Zeichen. Für  acon geht auch  |...| . 
	Achtung:  wenn  \  in der Zeichenfolge auftritt, dann verdoppeln.  
2. 	d d d  	ASCII-Codes als Dezimalzahlen (z.B.  13 10 für einen Zeilenvorschub oder 27  für den Escape-Code)  
3.	Achtung: Hier für 2stelliges Schema angegeben; Sonst #nnnx bzw. #nnnnx,  x=Space oder Mehrfachcode
  	#nnx 	Feldinhalt   (nnx kann auch eine #u- oder `Sonderkategorie` sein: Handb.10.2.6.2)  
  	#nn.  	Erstes Datenfeld, das mit #nn anfängt    
  	#n..  	Erstes Datenfeld, das mit #n anfängt    
  	#nn~  	Letztes Datenfeld, das mit #nn anfängt    
  	#n~~  	Letztes Datenfeld, das mit #n anfängt    
  	#nn+  	Alle Datenfelder #nnx, getrennt durch Code 10 (^J). Interessant bei HFM-Feldern.   
  	_nnx 	Feldtext von #nnx incl. der Nummer  nnn   (ohne das # am Anfang)  
	#nnx$a Unterfeld a von #nnn (nur der Inhalt des Unterfeldes wird ausgegeben)  Auch #nn.$a und #n..$a möglich 
		Achtung: Kein Leerzeichen zwischen Feldnummer und $, also z.B.  #90$u, nicht  #90 $u
		Sonderfall: Wenn von  #nnn  der Anfangsteil VOR dem ersten Unterfeld gebraucht wird:  #nnn$$ 
4a. 	$name 	Freie Variable   (beliebig benannte Variablen für beliebige Inhalte. 
		Dazu --> `Extra-Beschreibung`)  
4b. 	&name 	Persistente Variable   (beliebig benannte Variablen für beliebige Inhalte. [ab V34.1] 
		Dazu --> `Extra-Beschreibung `)  
5. 		Interne Sondervariablen   (meist nur einzelne Buchstaben; mehr dazu `weiter unten`)  
		Diese Variablen beziehen sich alle auf momentane Eigenschaften/Einstellungen des Systems 
6.   	(...) 	Geklammerter Ausdruck mit Manipulationsbefehlen, siehe B. unten 

Bei den `Sonderkategorien` sind nur die für a99/acon wirklich sinnvollen verwendbar:  #dt, #dts, #fna, #mv, #nr, #op, #uxa, #uxb.  

Es gibt für  3.  noch Möglichkeiten der Verfeinerung, wenn nicht der gesamte Feldtext gebraucht wird:  
(Zum Ausprobieren und Lernen dieser Befehle (A. und B.)  gibt es eine `Beispielsammlung`.)

A.  An die Feldnummer anhängen kann man einen Ausdruck (m,n) , mit zwei Zahlen  m>=0 und  n>=0.   
Dann wird vom Feld- bzw. Unterfeldtext nur der Teil ab Position m genommen (Zählung beginnt bei 0) und zwar n Zeichen (wenn  n=0, dann der gesamte Rest; mit (0,0) bekäme man also alles, aber das kriegt man auch ohne diese Angabe).  
Ist  m  größer als die Länge des Datenfelds, kommt nichts heraus.  
m  kann negativ sein, dann werden die letzten  m  Zeichen genommen, bevor  n  ausgewertet wird.
Ist  n  größer als die Länge des Restes, wird nach rechts mit Leerzeichen aufgefüllt. 
n  kann negativ sein, dann wird eine entspr. Anzahl Zeichen vom Ende her als Ergebnis genommen 
Beispiel:  var #76(0,-4) liefert die letzten 4 Zeichen von #76., 
		dasselbe tun var #76(-4,4) und  var #76(-4,0) . 
Wenn vor der Zahl  n  noch ein  r  steht (dann  n  aber nicht negativ), wird statt dessen links aufgefüllt, der Text also rechtsbündig auf die Länge  n  abgesetzt (so kann man Ausgabefelder mit fester Länge erzeugen) . 
Beispiel: var #76(0,r6) : Erscheinungsjahr links auf 6 Zeichen auffüllen. 
Noch besser: mit  (rN,x)  kann man den iV-Text in einem N Zeichen langen Feld nach rechts rücken und links, falls da noch Platz bleibt, mit dem Zeichen x auffüllen. 
Sonderfall: Wenn man  i0  schreibt statt einer Zahl m, wird der Feldinhalt ab der Indikatorposition genommen. Das ist die Position hinter dem Mehrfachcode. Beim Standardschema macht das keinen Unterschied, bei MARC jedoch gibt es vor dem Textbeginn noch 2 Indikatoren. Siehe dazu die Beschreibung im Anhang A des Handbuchs. Wenn man also schreibt: 
var #nnn(i0,1), dann ergibt sich genau der Indikator des Feldes #nnn.  Will man den zweiten Indikator oder das Zeichen hinter dem ersten, dann   var #nnn(i1,1).

B.  Die zweite Möglichkeit: man hängt noch einen geklammerten Ausdruck direkt an #nnn hinten dran in einer der folgenden Formen:   [ nur bei $- und &-Variablen ein Spatium vor (...), sonst nicht ]
	(b"xyz")  vom Feldtext nur den Teil hinter dem ersten "xyz" nehmen 
	(B"xyz")   dasselbe, aber wenn "xyz" gar nicht vorkommt, dann den unveränderten Text 
	(e"xyz")   Nur den Teil vor "xyz" nehmen (wenn "xyz" nicht vorkommt, unverändert)
	(E"xyz")   Nur den Teil bis incl. "xyz" nehmen (wenn "xyz" nicht vorkommt, unverändert). "xyz" bleibt stehen
	(t"xyz")   Am Ende den mit dem letzten vorkommenden "xyz" beginnenden Teil beseitigen 
(T"xyz")    Den Teil nehmen, der hinter dem letzten vorkommenden "xyz" steht (leer, wenn "xyz" nicht vorkommt) 
	(f"xyz")   Vorne jedes einzelne der Zeichen xyz  entfernen, auch wenn es mehrfach vorkommt 
	(F"xyz")   die entsprechende Aktion am Ende des Textes 
	(u) / (U)        beseitigt die mit Nichtsortierzeichen markierten Teile im iV-Inhalt; U: ersten Buchstaben groß machen 
	(u[])        beseitigt Einschlüsse in eckigen Klammern  [u gibt es ab V29.7) 
	Speziell, falls iV-Inhalt  XML ist:  (Mehr in `Vb.212`) 
	(x'tag att="abc"')  iV-Inhalt nach <tag> mit Attribut att="abc" absuchen und den Inhalt nehmen  
	(X"tag")   dasselbe, aber  <tag ...  stehenlassen, jedoch </tag> am Ende wegnehmen. 
	Achtung: Wenn das Feld <tag ...>  mehrfach vorkommt, werden alle eingesammelt und die Inhalte mit 2x Code 20 getrennt.
Statt "..." kann man '...' verwenden (wichtig, wenn z.B. innerhalb  xyz  ein " vorkommt).  Aber nur eins von beiden, nichts anderes.
Der Ausdruck wirkt nur auf den Inhalt des betr. Datenfeldes, an den er angehängt ist. 
Achtung: Steht vor dem Klammerausdruck ein Leerzeichen, wirkt er auf den momentanen Inhalt der gesamten  iV, siehe oben 6.   (Das geht dann auch bei $- und &-Variablen, das direkte Anhängen eines (...)-Ausdrucks aber nicht.)
Bei  e, B und b  kann xyz auch von der Form [abc] sein, um zu erreichen, daß beim ersten Auftreten eines der Zeichen  a, b oder c die Zeichenfolge abgebrochen wird (Fall e) bzw. der Rest hinter dem Zeichen genommen wird (Fall b und B).
Ausnahmen: Statt (b"<") muß man (b"[<]") schreiben, entspr. für die Zeichen  >, # und ~. 
Mit ? kann man einzelne Zeichen maskieren, d.h. (e"?A") setzt das Ende vor   xA  mit bel. x. (Für  f  und  F  macht das keinen Sinn.) 
Mit  ^X  (2 Zeichen) innerhalb  xyz  kann man nach Steuerzeichen suchen: 
         ^I  z.B. steht für den Code 9 (TAB-Code), ^M^J für 13 10,  ^T für 20 usw. 
Wenn in  xyz  das Zeichen ^ selbst gemeint ist, muß man  ^~  dafür setzen. 
Wenn xyz mit ~ beginnt, wird ohne Unterscheidung von groß/klein gesucht (ab V28.3). 
Auch in  xyz  muß jeder \ verdoppelt werden. 
Außer f und F: Statt  xyz  kann auch eine #u-Variable oder Kategorienummer stehen: (b"#uab"), da.nn wird deren Inhalt statt xyz genommen. Mit (b"~#uab") passiert dasselbe, aber ohne Unterscheidung  von groß/klein (ab V28.3). 

C.  Mehrere Ausdrücke der Art A und B können aufeinander folgen, dann alles zusammen in (...) eingeschlossen (also nicht mehrere Klammernpaare), getrennt durch optionale Leerzeichen.  
Beispiel: (b"abc" e"def" 0,15) : Hinter  abc  beginnen, vor  def  enden, dann davon die ersten 15 Zeichen. 
Außer bei f und F kann statt xyz auch eine #u-Variable stehen, z.B.  b"#uab" 
Wenn in der iV Steuerzeichen vorkommen (Codes unterhalb 32), muß man sie in xyz in der Form ^A für Code 1 usw. angeben, siehe B. Das Zeichen ^ selbst muß als ^~ angegeben werden. 
Wichtiger Sonderfall: Wenn man schreibt  var (...), also ohne Kategorienummer, dann werden die Befehle in (...) auf den momentanen Inhalt der iV angewendet, egal wie er vorher entstanden war, z.B. durch einen Befehl  var Fdateiname  oder  var $. 
Hinweis: Die `Exportsprache` ist vergleichsweise mit ihren `Manipulationsbefehlen` noch etwas mächtiger.  

Zu 5. 	Außerdem  kann man eine Anzahl Interner Sondervariablen in den Ausgabetext einbauen. Das sind die Buchstaben der nachfolgenden Liste, es wird dann jeweils der entsprechende Text statt des Buchstabens automatisch eingesetzt:     
	acon: nur die sinnvollen Variablen sind nutzbar,  die nicht verfügbaren sind mit  xx  markiert.  
	Die ersten neun entsprechen gleichnamigen Aufruf-Optionen der DOS-Programme.  
Testen:  Starten Sie den FLEX  `cstring.flx`  

Hier die Liste der internen Sondervariablen (s.o. Punkt 4). Es handelt sich um Einstellungen oder Eigenschaften des momentanen Zustands, in dem sich das System befindet. Alle diese Werte kann  man im FLEX auswerten. Das geht immer nach dem Schema dieses Beispiels (außer bei den  J-Werten): 
var L 
if ="~ger" jump deutsch
	Wenn die Arbeitssprache Deutsch ist (ger oder GER), dann springe zur Marke :deutsch. 
  
Die ersten 10 Sondervariablen entsprechen gleichnamigen Aufruf-Optionen der DOS-Programme (s. `Kap.12` des Handbuchs).  
Nicht für acon gilt: 
Die in grün angegebenen Namen bezeichnen dasselbe Element in der INI-Datei, diese Namen können gleichwertig verwendet werden, also z.B. InputFileNr statt N. Möglich ist also statt  var P  genausogut  var ProgDir

A 	Access-Modus der aktuellen Sitzung (Berechtigungsstufe aus INI-Datei)      access
B 	Name der Datenbank      DbName
D 	Datenbank-Pfadname (mit \ am Ende)    DbDir
E	Name der aktuellen Exportdatei      OutputFile
K	Name der Konfigurationsdatei      Konfiguration
K1	nur der erste Buchstabe davon  
L	Sprachbezeichnung d. Arbeitssprache (INI-Befehl  Language=...)  
N	Nummer der Datei für neue Sätze      InputFileNr
P 	Name des Programmverzeichnisses (mit \ am Ende)      ProgDir
Y xx	Pfad der IndexDatei (InxName in INI, falls anders als D, sonst leer) (DOS-Option -y)  

Die anderen Variablen in alphabetischer Folge: 
Nochmals Achtung: Die mit xx gekennzeichneten Variablen gibt es in acon  NICHT. 

$	Zweite interne Variable, auch  iV2  genannt. Mit  ins $  kann man sie belegen, mit  var $  wieder in die normale iV holen.

C xx	Copy-Verzeichnis (für Sicherungskopie, siehe _backup.flx /_restore.flx) ohne \ am Ende  
Err 	Letzter Fehlermeldungstext. Mit  if no var Err;mes;jump ...  kann man eine Meldung erscheinen lassen und einen Sprung auslösen, z.B. nach einem find-Befehl:  var Err\if not "" jump ...
Fname 	File : hinter F folgt direkt ein Dateiname, und zwar der Name einer lokalen Datei oder eine URL in der Form http://... oder file:///...; der Inhalt dieser Datei (!!) wird in die Ausgabe eingefügt; folgt kein Dateiname, wird Inhalt der iV als Name genommen. Dabei bleiben auch Steuerzeichen erhalten. Für Intenet-Dateien empfiehlt sich allerdings, diese zuerst mittels  `get I url`  in die iV zu holen und in einer $-Variablen zwischenzuspeichern, weil es dabei bessere Fehlerkontrollen gibt.
	Hinweis: mit  fetch anz  kann man aus einer geöffneten Datei anz Zeichen in die iV einlesen. 
G	Name der LOG-Datei (LogName-Befehl in INI, DOS-Option -L )  
H	Liste der Register-Überschriften (Headlines, |-Zeilen in Indexparametern)  
I	Indexliste : die Liste der symbolischen Registernamen (I-Befehle der Indexparameter) 
                    Trennzeichen bei I und R ist der Code 20 ( ¶ ),  Ersetzung bei z.B. Bedarf mit  ins _^T_^M^J_  
Die mit J beginnenden Sondercodes fallen aus dem Rahmen: sie verändern den iV-Inhalt als Ganzes 
Man muß sie jeweils hinten an den  var-Befehl mit anhängen, nicht auf die nächste Zeile als eigenen  var-Befehl! 
J	Feldname laut CFG zu der Feldnummer, die gerade in der iV steht. 
	Beispiel: var "#20" J : dann steht in der iV: "Titel"
Jd	Der momentane Inhalt der iV wird in dezimale Codes umgewandelt: aus "abc" wird "97 98 99" 
Jl	Länge der iV, d.h. der momentane Inhalt der iV wird durch dessen Länge ersetzt. 
JLx	Inhalt der iV nach Links bzw. Rechts durch das Zeichen x auf soviel Stellen auffüllen, wie es der interne Zähler angibt. 
JRx	Also z.B. vorher geben:  z=8   für 8 Stellen. Oder:  z=6\var #nr JL0  bedeutet: #nr 6stellig mit führenden Nullen geben. 
 
Kk 	Werte t und k aus der CFG, mit / dazwischen. Normalfall: 2/4
M 	Inhalt der Environment-Variable TEMP (dort besteht Schreibrecht)      ( TempDir ) 
	bzw. der Inhalt des INI-Befehls DbAux, wenn dieser gesetzt wurde.  
	acon : Dateinamensmuster, z.B.  demo2\cat*.ald, wenn auf c:\allegro  der Befehl  acon -ddemo2 -bcat  gegeben wurde 
O xx	Name der Offline-Datei  
Q xx	Fokusziffer: (Fokus setzen mit Befehl activate i )  
	1 : Auswahlliste  
	2 : Schreibfeld  
	3 : Befehlszeile  
	4 : Anzeigefeld  
Qa xx	Was steht momentan in der Auswahlliste?  
	1 : Aktueller Satz 
	2 : Hintergrundspeicher (#u-Variablen) 
	3 : Ergebnismengenliste 
	4 : Abfrageliste aus CFG 
	0 : CFG-Liste der Kategorien  
R	Restriktionen : Liste der Namen der Restriktionen (R-Befehle)   
		Trennzeichen bei I und R ist der Code 20 ( ¶ )  
S	Short-title Überschrift (aus Zeile |<="..." der Indexparameter)  
T	Titel der Datenbank (aus Zeile |a="..." der Indexparameter)  
	  bzw., wenn gesetzt, die Zeile DbTitle aus der INI-Datei  
U xx	Name der aktuellen Ergebnismenge  
Uv xx	Name der zuletzt benutzten ViewListe  
V xx	Name der INI-Datei (Vorgaben), mit der gestartet wurde  
V14	Werte i5 und i6 der Indexparameter, falls V14-Verknüpfungen vorhanden, z.B. _9
W xx	Arbeitsverzeichnis (Working directory) (OHNE \ am Ende) 
X xx	Name der letzten Hilfedatei  
Z	Wert der internen Zahlenvariablen  `iZ`   
Zk	dasselbe, gerundet auf k Stellen nach dem Komma (k=0...9)  
  
a xx	Name der aktuellen Anzeigeparameter (DOS: Option -p )       DisplayParameter
b 	Breite der Kategorienummern,Textanfangsposition. Bei A.CFG:  2,4  
ci 	( i =1...499) Zeile i der UIF-Datei. Nummern 70-89 sind frei für Anwender  
ca 	momentaner Inhalt/Umfang des Arbeitsspeichers, in Bytes  // momentane Anz.Felder,Max.Zahl    [ CFG: mK ]
cl	Befehlszeile (command line): Was beim Aufruf des Programms hinter dem Programmnamen angegeben wurde
cm xx	momentaner Inhalt der Suchbefehlszeile  (Feld "Schnelle Suche")
cp 	momentaner Inhalt/Umfang des Phrasenspeichers, in Bytes // momentane Zahl, Max.1200  [ CFG: mP ]
cr 	momentaner Inhalt/Umfang des Reservespeichers, in Bytes // momentane Anz.Felder,Max.Zahl    [ CFG: mB ]
cs	Wert der CFG-Variablen CS (D=DOS / W=Win / U=UTF-8) = interner Code der Datenbank 
cn 	Feldnummer für Neuerfassungsdatum  (CFG cn ) , ohne #, also z.B.  99n
ce 	... für letztes Änderungsdatum  (CFG ce ) 
cg 	... für die IdNr  (CFG cg ) 
ci 	Form der IdNr (CFG ci )
cf 	Anzahl der Füllzeichen in einem Neusatz (CFG:  f )
d xx	Name der aktuellen Druckparam (DOS: Option -q )       PrintParameter
e	Name der aktuellen Exportparam (DOS: Option -e )       ExportParameter
f  xx	find Befehl (Name) der letzten Ergebnismenge  
g xx	Zeile im Index, die zuletzt benutzt wurde  
h	headline des Registers, dessen Nummer in der iZ steht (vorher z.B. mit var "1"\= hineinschreiben)  
i 	interne Nr. des Datensatzes  
iR	interne Nr. des mit  fetch rec  aus ALD-Datei eingelesenen Datensatzes   (nur acon)
ixk-j Satznummern k-j der aktuellen Ergebnismenge, getrennt durch das Zeichen x. Ohne k-j: alle Satznummern. 
	Sonderfall  x=n :  jede Nummer auf neuer Zeile.   [Hinw.: Zählung beginnt mit 1]
j 	Nummer der .cLD-Datei des Satzes  
jb 	Länge des Datensatzes in Byte (aktuelle Länge im Arbeitsspeicher)  
jf 	... in der Datei (wird schon beim Einlesen des Satzes festgestellt)  
jc  	Dateinummer der Datendatei (z.B. 3 wenn der Satz in cat_3.ald ist)
jp 	Position des Satzes in der Datei ("offset" vom Dateianfang, beginnt mit 0)  
k0  	Anzahl der Kategorien (Felder) des aktuellen Satzes  
k1  k_1 	Erstes Feld des Satzes (incl. Kategorienummer), k_1: dasselbe ohne # am Anfang  
k2  k_2 	Nächstes Feld (leer, wenn das letzte erreicht war)  
k3  k_3 	Letztes Feld   
k4  k_4 	Voriges Feld (leer, wenn das erste erreicht war)  
kn	Gesamter Datensatz, Felder mit # beginnend, Code 10 als Feldende
kr	... desgleichen, aber 13 10 statt nur 10
l 	Größe ("length") der Ergebnismenge  
m 	Name des Programms und Nummer der Version 
                (z.B.  a99:  a99 v36.2  --  acon:  ac-w V35.10, ac-x v25.9)  
mw xx	Nummer der Windows-Version (5 = XP / 6.1 = 7 / 6.2 = 10)   [ab V36.2]
n  	neue Zeile, gleichwertig: 13 10  
o xx	Anzahl der Offline-Sätze  
oq xx 	Position des Satzes in der Offline.Datei (vgl.  `get q`)
p 	Primärschlüssel des aktuellen Satzes  (Sprungmarke #-@ bzw. die mit `set pX` gesetzte)
pid          Process Identifier (Nummer des laufenden a99 als Prozeß)
pvs         Name des aktuell eingestellten Persistenz-Index, default:  z1 für Register 1 von cat.azx  [ab V35.8]
q xx 	Nummer der aktuellen Ergebnismenge/momentane Gesamtzahl von Erg.mengen 
r 	relative Nummer des Satzes in der Ergebnismenge  
s 	Kurzzeile des aktuellen Satzes (aus der .STL-Datei) 
size xx	Größe des a99-Fensters: nur 4 Zahlen, links rechts oben unten, in Pixeln. (Anwendung siehe `janas`)
SIZE xx	Größe des gesamten Desktops:  4 Zahlen in gleicher Weise
sK	Alle Registereinträge zum aktuellen Satz, getrennt durch == 
sk	  dasselbe, aber getrennt durch 13 10 (Zeilenvorschub)  [also F7 per FLEX] 
	  Der Text beginnt dann mit einer Zeile (Anzahl/Gesamtlänge)
sL	Status des letzten Sperrbefehls (Locking status) (ab V32.4):  `set lock` ..., aber auch  if Lock ...
st xx	Inhalt des Statusfeldes unten rechts, in dem die Satznummer steht
t	Gesamtzahl Sätze (total number of records)  
u 	aktuelles Datum und Uhrzeit  
ue xx 	Datum und Uhrzeit der letzten Änderung des aktuellen Satzes 
v xx	Name der Phrasendatei
vi xx	Phrase i (i=1 - 255) (->  `phrase` i text)  
vPxx        Letzte Position in der aktuellen ViewListe. Mit `set vP` wieder einstellbar.
w xx	Inhalt des Schreibfeldes  
x xx	Name des externen Editors  
y xx	Name der Indexparameter (InxParam in INI, falls anders als B) sonst wie B   
z	Wert des internen Zählers  
z0 xx	Anzahl Zeilen in der Anzeige (incl. aller Leerzeilen)  
z1 xx	Erste Zeile des Anzeigefeldes (als ASCII-Text, ohne RTF-Steuerzeichen)  
z2 xx	Nächste Zeile  
z3  xx	Letzte Zeile (Leerzeilen am Ende unberücksichtigt)  
z4  xx	Vorige Zeile  
zc xx	Text der aktuellen Zeile (wo sich die Schreibmarke befindet)  
	Dann: #uzC = dieselbe Zeile, aber __ (2x Unterstrich) an der Stelle,   
	wo die Schreibmarke sich befindet  
	#uzD = Fliptext, falls Schreibmarke innerhalb eines solchen  
	#uzF = Flipbefehl (zugehörige Nutzervariable #uZi, einschl. der Nummer, also #uzF#uZi...)  
zn xx	Nummer der Zeile, in der sich die Schreibmarke befindet 
zv xx	Nummer der ersten oben sichtbaren (visible) Zeile 
  
Wenn  k2,k4,z2  oder  z4  verwendet werden, kann man anschließend mit  `if no` ... checken, ob es kein Ergebnis mehr gab.  
Das ist wichtig für Schleifen.  
  
Tip: Sie können diese Variablen alle leicht ausprobieren. Geben Sie z.B. im Schreibfeld ein, um den Primärschlüssel bzw. den Titel der Datenbank bzw. die interne Nummer des aktuellen Satzes zu sehen:  
  
x var p\mes  bzw.     
x var T\mes  bzw.    
x var "interne Nummer: " i\mes

Dann wird jeweils das Ergebnis des  var-Befehls in einer Message-Box angezeigt.  
  
?variable=h xvar  
?write=h xwrite  
?var=h xvar  
?iZ=h xiz  
?phrase=h xphrase  
?if no=h xif  
?Register=h xa  
?cstring.flx=X cstring  
?Manipulationsbefehlen=h ac10-6  
?Exportsprache=h ac10 
?Sonderkategorie=h ac10-5=Sonderkategorien  
?weiter unten=x help =interner Sondervariablen 
?Sonderkategorien=h ac10-5=Sonderkategorien 
?Kap.12=h ac12 
?Beispielsammlung=h mbtest 
?Extra-Beschreibung=h xfreevar 
?Extra-Beschreibung =h vb258#288 
?set pX=h xset=set p 
?Interne Sondervariablen=h =internen Sondervariablen 
?Vb.212=h vb212#52 
?get I url=h xget=get I url 
?set lock=h xset=set lock 
?set vP=h xset=set vP   
?janas=h xjanas 
?get q=h xget=get q