Register
Datenfelder, Unterfelder und Nutzervariablen belegen oder einfügen
insert #xyz acon
Insert #xyz
insert $abc acon
insert &abc
Inhalt der internen Variablen (iV) in das Feld #xyz kopieren
bzw. in die freie Variable $abc
bzw. in die Persistente Variable &abc [ab V34.1]
Der Inhalt der iV wird vorher meistens mit dem Befehl var vorbereitet.
#xyz kann auch eine #u-Variable sein.
Der iV-Inhalt selbst ist nach dem Befehl unverändert.
Sonderfall: Mit insert $ kopiert man den Inhalt der iV in iV2 (die "zweite interne Variable").
Mit var $ kopiert man diesen Inhalt wieder zurück. Der Inhalt der iV2 bleibt, im Gegensatz zur iV, auch nach Ende des jeweiligen FLEXes erhalten, bis zum nächsten insert $.
In jedem Fall wird der momentane Inhalt der betr. Variablen überschrieben.
Zudem ist die maximale Laenge der iV2 wie auch der iV mit 4 MB viel größer als die maximal 64K einer $-Variablen. (In acon sind es nur jeweils 2MB.)
Nach Insert wird die Anzeige neu aufgebaut, d.h. der Datensatz erscheint sofort mit dem veränderten Feld auch in der Anzeige und Auswahlliste.
Steht hinter insert nichts, wird statt dessen der Inhalt der iV genommen. Dort muß dann sowohl #xyz bzw. $abc als auch der Text stehen, das Ganze vorher erzeugt mit einem geeigneten var-Befehl.
Es kann sich auch um mehrere Datenfelder handeln, getrennt durch Zeilenvorschub:
var "#nnn text" n "#mmm text"\insert.
Jedoch geht das nicht mit #u-Variablen. Für acon gilt als Trennung ;# (Sicherheitsmaßnahme gegen "code injection").
Ist die iV leer, wird das Feld #xyz bzw. die Variable $abc gelöscht.
Wenn man ins #ux~ schreibt. werden alle Variablen mit x an der zweiten Stelle gelöscht (wie bei dx~ in den Exportparametern).
Wenn man insert #xyzABC schreibt, bleibt ABC vor dem Inhalt der iV stehen. Der Befehl hängt also die iV hinten an ABC an, und das Ganze ist der neue Feldinhalt.
Tip: Nach insert-Befehlen kann man stets mit display\show rec den Neuaufbau der Anzeige auslösen.
Mit if no ... kann man prüfen, ob ein Fehler auftrat, in der iV steht dann die Fehlermeldung. Gilt auch für folgende Varianten:
Hinweis: Die folgenden zwei Varianten gelten erst ab V27.3 auch für #u-Variablen:
insert $a+#xyz acon
Inhalt der internen Variablen als Teilfeld $a an #xyz anhängen. (Auch wenn in #xyz schon ein Teilfeld $a vorhanden ist).
insert $a-#xyz acon
Teilfeld $a ersetzen, wenn es vorh. ist, sonst anhängen.
Wenn die interne Variable leer ist: Teilfeld $a löschen (z.B. var ""\ins $a-#nnn)
Sonderfall: insert $$-#xyz Setzt die iV an den Anfang des Kategorietextes, ohne Teifeldzeichen.
Freie Variable: Statt #xyz kann auch der Name $Abc einer freien Variablen stehen (mehr siehe dort).
Hinweis: Bei acon kann das $ durch ein S ersetzt werden (bei $$ nur das erste), um Probleme mit PHP-Variablen zu vermeiden. Noch einfacher kann man jedoch auch insert ##xyz schreiben, um den Anfangstext durch den iV-Inhalt zu ersetzen, oder
##xyz Text
um den Anfangstext direkt durch Text zu ersetzen. Alles nur bei acon, eingeführt mit Version 2.2.12.
Sonderversion: Befehl für Lokale Ersetzung
insert _abc_XYZ_ insert ,abc,XYZ, acon
Im Inhalt der internen Variablen wird abc durch XYZ ersetzt. Wenn abc mehrfach vorkommt, wird jedes Vorkommnis ersetzt.
Nachfolgendes ins #nnn kopiert dann den veränderten Inhalt in eine Kategorie oder eine #u-Variable.
Zu beachten:
o abc darf an jeder Stelle der iV vorkommen.
o Es gilt exakte Schreibung: aBc oder ABC würden z.B. nicht ersetzt.
o Maskierung und Trunkierung gibt es nicht, d.h. $ und ? und andere Sonderzeichen haben keine Sonderwirkung.
o XYZ darf leer sein, dann wird abc beseitigt.
o XYZ darf länger oder kürzer sein als abc.
o Die iV darf mit Leerzeichen beginnen und enden, diese bleiben erhalten.
o abc muß aus mindestens einem Zeichen bestehen - klar, denn sonst weiß das
Programm ja nicht, wo XYZ hin soll.
o Das abschließende _ bzw. Komma darf man vergessen, das mittlere nicht,
denn dann passiert nichts (auch kein Absturz und keine Meldung).
o Steuerzeichen (control codes) können in abc und XYZ so angegeben werden: z.B. ^M^J für 13 10
sowohl in abc wie in XYZ. D.h. ^A steht für Code 1 usw. , ^T für Code 20 = ¶ [ab V27.6]
Jedes Zeichen, druckbar oder nicht, kann ansonsten auch codiert in der Form ^xxx mit genau drei Ziffern xxx angegeben werden,
Für das Zeichen ^ selbst ist ^~ anzugeben. Folgt dem ^ kein Zeichen >@ oder drei Ziffern, bleibt es unverändert stehen
Direkte Einfügung in den Datensatz oder Reservespeicher:
Feste Inhalte kann man unmittelbar in eine Kategorie oder #u-Variable einfügen, indem man diese schlicht hinschreibt, in dieser Form (siehe Sonderbefehle ):
#xyzText
Anm.: Mehrfach-Leerzeichen verschwinden, falls nicht per CFG erlaubt. Ist #xyz eine #u-Variable, werden ALLE Leerzeichen am Anfang und Ende des Textes entfernt, jedoch nicht im Innern!
Vor dem insert kann man den Befehl spaces geben, um Mehrfach-Leerz. in der iV auszumerzen.
Beispiel: Ausprobieren
var I
ins _^T_^M^J_
Aresqa
Mit var I wird die Liste der symbolischen Registernamen in die iV geschrieben, aber mit Code 20 (= ¶ = ^T) als Trenner. Für eine Anzeige mit Aresqa braucht man jedoch die Codes 13 10 (= ^M^J). Der ins-Befehl besorgt dies und Aresqa zeigt dann die Liste an.