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:

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.

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.