Für avanti hat der Befehl eine  andere Wirkungsweise , siehe unten.

 

Spezielle Einlesefunktionen

 

read

read rec name

Datei  E.ADT  bzw. Datei  name   wird eingelesen. Diese kann eine Reihe von Kategorien enthalten, die dann alle in den aktuellen Satz eingefügt werden. (Erfassungshilfe; manuell mit ALt+ä oder Menü "Bearbeiten | Read")

Wenn name fehlt, wird der Inhalt der iV genommen.

 

Achtung: Einen kompletten Datensatz einlesen aus einer geöffneten Datei (Typ .ALG oder .ADT) geht auch, aber mit dem Befehl   fetch rec .

 

read extern

Datei EXTERN.DAT wird als externe Datei eingelesen (wie über das Menü "Datei | Externe Datei laden").

Die Datei kann wahlweise die Grundstruktur (.ALG) haben oder die  Externstruktur  (.ADT), das erkennt das Programm automatisch.

Dies wird man hauptsächlich für Prozeduren nutzen, die mit ExFLEXen arbeiten, um Daten von außen anzuliefern.

 

read file name

Datei name wird als Externdatei eingelesen. Es muß sich um eine Datei vom Typ .ADT oder .ALG handeln. Sie wird den schon vorhandenen Offline-Daten hinzugefügt (wie über das Menü "Datei | Weitere Offline-Datei laden").

Vorher kann man mit   erase off  den Offline-Speicher leeren.

Mit  if no  ...  kann man checken, ob es gelang und die Datei etwas enthielt, bevor man sie mit  show list  anzeigen läßt.

Hinweis: Im Dateinamen können normale Schrägstriche statt \ verwendet werden! Wenn man den \ nimmt, muß man ihn verdoppeln.

 

Alternative: Statt dieses etwas veralteten Befehls kann man auch schreiben, wenn z.B. der Name in der Variablen #una steht:

var "F" #una
var // Die Datei in die iV holen
insert // Den iV-Inhalt in den Dateisatz einsortieren

 

Eine Besonderheit sind die sog. "externen Erg.Mengen", die z.B. bei einem Aufruf von PRESTO oder SRCH entstehen! Diese bestehen nur aus einer Liste interner Satznummern von Datensätzen, die bereits zur Datenbank gehören. Auch mit FLEXen kann man solche Dateien erstellen und an diese Stelle verwenden:

 

read set name     avanti  [ab V29]

Datei name wird als PRESTO-Ergebnismenge eingelesen. Die Datei besteht nur aus einer Titelzeile und dann einer Liste von Satznummern in beliebiger Folge, je eine Nummer pro Zeile. (Eine solche Datei namens X.SET entsteht, wenn man vom Menü "Datei" aus PRESTO aufruft und dann eine Ergebnismenge exportiert. Dabei werden die Parameter RS.APR benutzt.) Es spielt aber keine Rolle, wie diese Datei entstanden ist. Mit  if no  ...  kann man checken, ob das Einlesen gelang und die Datei etwas enthielt, bevor man sie mit  show list  anzeigen läßt.

 

Beispiel 1:

Der FLEX   fts.flx   ermöglicht eine Volltextsuche in der Datenbank und liest dann die Ergebnisse in a99 ein. Das Volltext-Suchprogramm SRCH.EXE wird gestartet (in einem DOS-Fenster), es führt die Suche aus und exportiert eine Datei mit den Nummern der gefundenen Datensätze. Ab V27.1 kann man statt dessen auch per FLEX eine Volltextsuche in der Gesamtbank machen, wobei der Befehl  srx  zum EInsatz kommt.

 

Beispiel 2:

Man kann das Anzeigefeld zum Editieren benutzen:

Zuerst mit F5 die Internform des Satzes anzeigen lassen, dann diese bearbeiten.

Und nun reicht ein ganz kurzer FLEX

x file xx\read rec xx

um das bearbeitete Anzeigefeld in die Datei  xx  zu speichern und diese dann wieder in den Datensatz einzulesen. Das klappt auch bei hierarchischen Sätzen! Tip: Wenn man das regelmäßig machen will, auf eine Flip-Taste legen oder auf F3 oder F4.

Aber Vorsicht: Wenn man V14-Verknüpfungen hat (Personen- und andere Stammsätze), dann diese Methode nicht benutzen! Für den Fall wurde eine andere entwickelt, die Sie mit dem folgenden Link einschalten können:   Bearbeitung im Anzeigefeld aktivieren 

Gestartet wird dann der FLEX  dispedit.flx, der bei jedem Kategoriesystem funktioniert.

Tip:

Für das externe Bearbeiten von Daten im UTF8-Zeichensatz (Unicode) gibt es  utf8edit.flx.

 

Beispiel 3:

Die aktuelle Ergebnismenge permanent speichern, um sie später neu einlesen zu können.

 

open x ABC       // beliebiger Dateiname ABC

wri U n in       // U = Erg.Mengenname,  in = Liste der Satznummern der aktuellen Erg.Menge

close x

 

Das spätere Wiedereinlesen geht so:

read set ABC   

 

 ***************************************************************

 

 NUR avanti

 

datafile sei eine  Externdatei  des Typs .ADT , eine Grunddatei der Struktur .ALG oder sogar eine Datenbankdatei des Typs .ALD.  avanti (genauer gesagt das Programm  acon ) erkennt die Stuktur selbständig (bei .ALD-Dateien werden gelöschte Sätze übergangen)! Die Sätze sollen eingelesen und gespeichert werden. Dabei soll jeder Satz noch vorbearbeitet werden. Hier nur das Gerüst, damit es übersichtlich bleibt:

 ....

read datafile // QuellDatei wird geöffnet, erste Satz wird eingelesen

:loop

...                        // Vorbearbeitung durch beliebige Befehle

 put                       // Satz wegschreiben

read                      // nächsten Satz einlesen

if ok jump loop            // wenn noch einer da war, Sprung nach :loop

...                            // weitere Befehle oder Ende des Auftrags

 

Diese Arbeitsweise läuft bei a99 leider anders:

 

open datafile // QuellDatei wird geöffnet, noch nichts gelesen

fetch rec

:loop

...                        // Vorbearbeitung durch beliebige Befehle

put                        // Satz wegschreiben

fetch rec          // nächsten Satz einlesen

if not cancel jump loop         // wenn noch einer da war, Sprung nach :loop

...                            // weitere Befehle oder Ende des Auftrags