summaryrefslogtreecommitdiff
path: root/doc/eudas/eudas.hdb.11
diff options
context:
space:
mode:
Diffstat (limited to 'doc/eudas/eudas.hdb.11')
-rw-r--r--doc/eudas/eudas.hdb.11674
1 files changed, 0 insertions, 674 deletions
diff --git a/doc/eudas/eudas.hdb.11 b/doc/eudas/eudas.hdb.11
deleted file mode 100644
index 6a59847..0000000
--- a/doc/eudas/eudas.hdb.11
+++ /dev/null
@@ -1,674 +0,0 @@
-#limit (11.0)##pagelength (16.5)##block#
-#start (2.0,0.0)#
-#page (109)#
-#headodd#
-#center#EUDAS#right#%
-
-#end#
-#headeven#
-%#center#EUDAS
-
-#end#
-#center#1
-
-11 Funktionen zur Bearbeitung
-
-
-
-11.1 Sortieren
-
-Wenn Sie die Sätze in Ihrer EUDAS-Datei in einer bestimmten Rei­
-henfolge haben wollen (dies wird in vielen Fällen zum Drucken
-verlangt), müssen Sie die Datei sortieren. Sie können EUDAS ange­
-ben, in welcher Reihenfolge die Sortierung erfolgen soll. Um die
-aktuelle Datei zu sortieren, rufen Sie die Funktion
-#free (0.2)#
-
- Akt. Datei
- S Sortieren
-
-#free (0.2)#
-auf. Falls die Datei noch nie sortiert wurde, wird Ihnen auf jeden
-Fall die Sortierreihenfolge zum Auswählen angeboten. Anderenfalls
-werden Sie gefragt, ob Sie die vorherige Sortierreihenfolge ändern
-wollen.
- Das Sortieren wird als Veränderung betrachtet und nur auf der
-Arbeitskopie durchgeführt!
-
-#on("b")#Sortierreihenfolge#off("b")# Die Sortierreihenfolge gibt an, welche
-Felder in
-welcher Reihenfolge beim Vergleichen zweier Sätze benutzt werden
-sollen. Zuerst wird das an erster Stelle angegebene Feld verglichen.
-Sind die Inhalte hier unterschiedlich, wird die Einordnung der Sätze
-nach diesem Feld bestimmt.
- Sind die Inhalte in diesem Feld aber gleich, so wird nach dem
-nächsten Feld verglichen. Ist kein weiteres Feld in der Sortierrei­
-henfolge angegeben, wird der Vergleich an dieser Stelle mit einem
-zufälligen Ergebnis abgebrochen, das heißt, es kann nicht vorher­
-gesagt werden, welcher der beiden Sätze zuerst kommt.
- Die Sortierreihenfolge können Sie in einer Menüauswahl einge­
-ben. Kreuzen Sie die Felder an, die Sie vergleichen wollen und ach­
-ten Sie auf die richtige Reihenfolge. Die eingegebene Reihenfolge
-wird in der Datei gespeichert, um beim nächsten Sortiervorgang
-wiederverwendet zu werden.
- Nachdem Sie alle bei der Sortierung zu berücksichtigenden
-angekreuzt haben, werden Sie für jedes dieser Felder gefragt, ob
-nach dem Feld aufsteigend oder absteigend sortiert werden soll.
-
-#on("b")#Ablauf#off("b")# Der Ablauf des Sortierens wird durch Ausgabe von
-Satz­
-nummern dargestellt. Bis zur ausgegebenen Satznummer sind alle
-Sätze richtig sortiert. Bei Bedarf kann der Vorgang durch SV und
-dann 'halt' abgebrochen werden. Die Datei bleibt dabei auf jeden
-Fall intakt.
-
-#on("b")#Optimierung#off("b")# Die gespeicherte Sortierreihenfolge wird auch
-noch zu
-einer weiteren Optimierung benutzt. Wenn eine Datei sortiert war
-und nur wenige Änderungen stattgefunden haben, brauchen beim
-nächsten Sortiervorgang nur die wenigen veränderten Sätze einzeln
-einsortiert zu werden. Das funktioniert natürlich nur unter der
-Voraussetzung, daß die gleiche Sortierreihenfolge gewählt wird. Das
-Sortieren braucht in diesem Fall erheblich weniger Zeit.
-
-#on("b")#Probleme#off("b")# Normalerweise werden die einzelnen Felder nach
-dem
-EUMEL-Zeichencode verglichen. Das bedeutet, daß sich die Reihen­
-folge der Zeichen nach dem EUMEL-Zeichencode richtet. Ein Zeichen
-mit einem höheren Code wird also vor einem Zeichen mit einem
-niedrigeren Code einsortiert.
- In manchen Fällen ergeben sich mit diesem Vergleichsverfahren
-aber auch Schwierigkeiten. Wenn in einem Feld Zahlen oder DM-
-Beträge stehen, führt die Methode zu falschen Ergebnissen. Die '10'
-wird zum Beispiel vor der '2' einsortiert. Warum? Texte werden
-immer linksbündig geschrieben und verglichen. Bei Zahlen richtet
-sich die Wertigkeit jedoch nach dem Abstand vom Komma.
- Da bei Texten zuerst das erste Zeichen verglichen wird, ent­
-steht hier durch Vergleich von '1' und '2' der Eindruck, die '10'
-käme vor der '2'. Korrigieren könnte man dies, indem man ein Leer­
-zeichen vor die '2' schreibt. Wenn also die (nicht geschriebenen)
-Dezimalkommata direkt untereinanderstehen, werden Zahlen richtig
-verglichen.
-
-#on("b")#Typ ZAHL#off("b")# EUDAS hat jedoch eine bequemere Art, dieses
-Problem zu
-behandeln. Ein Feld, das Zahlen enthalten soll, bekommt einen spe­
-ziellen Typ ZAHL zugewiesen, der zu einer richtigen Sortierung
-führt.
- Bei Feldern vom Typ ZAHL ignoriert EUDAS bei Vergleichen alle
-nichtnumerischen Zeichen und vergleicht den Wert der Zahl. So
-können Sie zum Beispiel in einem Satz '2,50 DM' und im anderen
-Satz '10 DM' eintragen - EUDAS kann jetzt die richtige Reihenfolge
-feststellen.
- Übrigens: falls Sie numerische Werte lieber mit einem Dezi­
-malpunkt statt einem Dezimalkomma schreiben, können Sie EUDAS
-das mit dem ELAN-Kommando
-
-
- dezimalkomma (".")
-
-
-mitteilen. Wenn Sie ein solches Kommando eingeben wollen, können
-Sie im EUDAS-Menü ESC ESC drücken. In der Statuszeile erscheint
-dann die Aufforderung:
-
-
- Gib Kommando:
-
-
-Hier können Sie wie im Editor oder im EUMEL-Monitor ein beliebiges
-Kommando eingeben und ausführen.
- Die Normaleinstellung für das Dezimalkomma erreichen Sie
-wieder durch das Kommando
-
-
- dezimalkomma (",")
-
-
-
-#on("b")#Typ ändern#off("b")# Die Feldtypen sind eine permanente Eigenschaft
-einer
-EUDAS-Datei. Beim Einrichten einer neuen Datei wird zunächst der
-Standardtyp für alle Felder genommen. Sie erhalten jedoch Gelegen­
-heit, abweichende Feldtypen zu vergeben, wenn Sie die Frage
-
-___________________________________________________________________________________________
-
- Feldnamen oder Feldtypen ändern (j/n) ?
-___________________________________________________________________________________________
-
-
-bejahen.
- Auch nachträglich können Sie die Feldtypen noch ändern. Dies
-geschieht mit der Funktion
-#free (0.2)#
-
- F Feldstrukt.
-
-#free (0.2)#
-im Menü 'Öffnen'. Zunächst werden Sie gefragt, ob Sie noch weitere
-Feldnamen anfügen wollen. So könnten Sie die Datei um weitere
-Felder ergänzen, die bei allen Sätzen zunächst leer sind. Die neuen
-Felder müssen Sie wie beim Einrichten der Datei untereinander im
-Editor schreiben.
- Als zweites erscheint dann die gleiche Frage wie oben. Wenn
-Sie diese bejahen, wird Ihnen eine Auswahl der zu ändernden Fel­
-der mit Feldnamen und den zugehörigen Feldtypen angeboten. Kreu­
-zen Sie hier die Felder an, deren Feldtypen Sie ändern möchten.
- Da Sie mit dieser Funktion sowohl Feldnamen als auch Feld­
-typen verändern können, wird Ihnen für jedes Feld zunächst der
-Name zum Ändern angeboten. Sie können den Namen korrigieren oder
-überschreiben. Die Namensänderung hat jedoch keine Auswirkung
-auf den Feldinhalt!
- Wenn Sie den Namen nicht ändern wollen, drücken Sie einfach
-RETURN. Anschließend können Sie für das Feld den neuen Feldtyp
-angeben. Tippen Sie einen der vier Feldtypen als Text ein und
-drücken Sie RETURN. Anschließend hat das Feld einen neuen Typ.
-Die verschiedenen möglichen Typen werden jetzt genau erklärt.
-
-#on("b")#Feldtypen#off("b")# TEXT ist der Standardtyp, der die Feldinhalte
-nach
-EUMEL-Zeichencode vergleicht. Den Typ ZAHL hatten wir schon
-weiter oben kennengelernt. Daneben gibt es noch den Typ DATUM.
- Dieser Typ vergleicht Daten der Form 'tt.mm.jj'. Soll ein sol­
-ches Datum richtig einsortiert werden, müßte es anderenfalls in der
-Reihenfolge umgedreht werden (also 'jj.mm.tt'). Dies ist aber nicht
-nötig, wenn das Feld den Typ DATUM bekommt. Beachten Sie, daß
-alle Inhalte, die nicht die beschriebene Form haben, als gleich be­
-trachtet werden.
- Der letzte Typ ist DIN. Dabei werden Texte nach DIN 5007 ver­
-glichen. Das bedeutet, daß Groß- und Kleinbuchstaben als gleich
-angesehen werden, daß alle nichtalphabetischen Zeichen ignoriert
-werden und die Umlaute ihren richtigen Platz bekommen (Umlaute
-werden in normalen Texten hinter allen anderen Zeichen einsor­
-tiert). Da hierfür ein relativ großer Zeitaufwand notwendig ist,
-sollte dieser Typ nur dann gewählt werden, wenn er erforderlich ist.
-Den schnellsten Vergleich ermöglicht der Typ TEXT.
-
-#on("b")#Hinweis#off("b")# Beachten Sie, daß mit der Vergabe von Feldtypen
-keine
-Überprüfung der Eingabe verbunden ist. Insbesondere beim Datum
-wird nicht geprüft, ob die Form 'tt.mm.jj' eingehalten wurde. Wollen
-Sie solche Überprüfungen vornehmen, lesen Sie bitte Abschnitt 11.3.
-
-
-11.2 Kopieren
-
-In diesem Abschnitt sollen Sie erfahren, wie Sie eine EUDAS-Datei
-#on("i")#kopieren#off("i")# können. Diese Funktion kann nicht nur ein inhaltsgleiches
-Duplikat einer EUDAS-Datei herstellen (dies könnten Sie einfacher
-durch eine logische Kopie bewerkstelligen, s. 16.1), sondern auch
-komplizierte Umstrukturierungen vornehmen.
-
-#on("b")#Kopiermuster#off("b")# Der Schlüssel zu dieser Leistungsfähigkeit
-ist das
-#on("i")#Kopiermuster#off("i")#. Wie beim Druckmuster legen Sie dadurch die genauen
-Auswirkungen der Funktion fest.
- Für jedes Feld in der Zieldatei, in die kopiert werden soll,
-enthält das Kopiermuster die Angabe, woraus der Inhalt dieses
-Feldes entstehen soll. Durch Auswahl und Reihenfolge dieser Anga­
-ben bestimmen Sie die Struktur der Zieldatei.
- Im einfachsten Fall sieht die Kopieranweisung für ein Feld wie
-folgt aus:
-
-
- "Feldname" K f ("Feldname");
-
-
-Das 'K' dient zur Festlegung der Kopierfunktion. Auf der linken
-Seite steht in Anführungsstrichen der Name des Zielfeldes. Der
-Ausdruck auf der rechten Seite gibt den zukünftigen Inhalt des
-Feldes an. Der Ausdruck im obigen Beispiel steht einfach für den
-Inhalt des Feldes 'Feldname' in der aktuellen Datei. Das Semikolon
-am Ende dient zur Abgrenzung, da der ganze Ausdruck auch mehrere
-Zeilen lang sein darf.
- In der oben genannten Form würde das Feld 'Feldname' iden­
-tisch in die Zieldatei kopiert. Weitere Möglichkeiten besprechen wir
-später.
-
-#on("b")#Feldreihenfolge#off("b")# Zunächst wollen wir uns damit befassen,
-wie Sie
-die Feldreihenfolge in der Zieldatei beeinflussen können. Dies ge­
-schieht einfach dadurch, daß Sie die Kopieranweisungen in der ge­
-wünschten Reihenfolge aufschreiben. Damit können wir bereits ein
-erstes komplettes Beispiel betrachten:
-
-
- "Name" K f ("Name");
- "Vorname" K f ("Vorname");
- "PLZ" K f ("PLZ");
- "Ort" K f ("Ort");
- "Strasse" K f ("Strasse");
- "m/w" K f ("m/w");
-
-
-Dieses Kopiermuster würde die bereits beschriebene Adressendatei
-identisch kopieren, da alle Felder in der gleichen Reihenfolge vor­
-kommen.
- Wenn Sie jedoch die Feldreihenfolge ändern wollen (um zum
-Beispiel ein anderes Feld als erstes zu optimieren), brauchen Sie
-bloß die Reihenfolge im Kopiermuster zu verändern:
-
-
- "Ort" K f ("Ort");
- "Name" K f ("Name");
- "Vorname" K f ("Vorname");
- "PLZ" K f ("PLZ");
- "Strasse" K f ("Strasse");
- "m/w" K f ("m/w");
-
-
-Im Gegensatz zur Auswahl der Feldreihenfolge für die Anzeige än­
-dern Sie so die Feldreihenfolge für die Zieldatei permanent.
-
-#on("b")#Felder anfügen#off("b")# Die beiden angegebenen Kopiermuster haben
-jedoch
-nur dann die beschriebene Wirkung, wenn die Zieldatei noch nicht
-existert. Bei einer existierenden Datei kann die Feldreihenfolge
-nicht mehr geändert werden; daher hat die Reihenfolge der Kopier­
-anweisungen dann keine Wirkung.
- Sie können jedoch zu einer existierenden Zieldatei noch Felder
-hinzufügen. EUDAS verwendet nämlich folgende einfache Vorschrift:
-
-#limit (12.0)#
- Wenn als Zielfeld in einer Kopieranweisung ein Feld
- genannt wird, das in der Zieldatei noch nicht vorkommt,
- wird es als weiteres Feld der Zieldatei hinzugefügt.
-#limit (13.5)#
-
-Diese Strategie hat im Fall der nicht existierenden Datei zur Folge,
-daß alle Felder neu sind und in der Reihenfolge ihres Auftretens
-eingerichtet werden. Existiert die Datei schon, werden zusätzliche
-Felder am Ende angefügt.
- Beachten Sie, daß zusätzliche Felder für eine existierende
-Datei nur in den neu hinzukopierten Sätzen gefüllt sind. In den
-alten Sätzen bleiben alle neuen Felder einfach leer.
-
-#on("b")#Satzauswahl#off("b")# An dieser Stelle sollte erwähnt werden, daß
-wie bei
-allen Funktionen, die die gesamte Datei betreffen, nur die durch die
-Suchbedingung ausgewählten Sätze kopiert werden. Ist mindestens
-ein Satz markiert, werden nur die markierten Sätze kopiert und die
-Suchbedingung ignoriert.
-
-#on("b")#Teildatei#off("b")# Jetzt können Sie auch die zweite wichtige
-Aufgabe des
-Kopierens verstehen. Sie können aus einer Datei einen Teil der
-Sätze und einen Teil der Felder #on("i")#herausziehen#off("i")#. Danach haben Sie
-unter Umständen eine wesentlich kleinere Datei, die sich auch
-schneller bearbeiten läßt. Gerade wenn Sie nicht den allerneuesten
-64-Bit-Supercomputer haben, können Sie so viel Zeit sparen, wenn
-Sie wiederholt nur mit einem Teil der Datei arbeiten müssen.
- Die Auswahl der Sätze für einen solchen Zweck erfolgt über ein
-Suchmuster; im Kopiermuster geben Sie dann nur die gewünschten
-Felder an.
-
-#on("b")#Aufruf#off("b")# An dieser Stelle wollen wir jetzt endlich
-behandeln, wie
-Sie die Kopierfunktion aufrufen. Dazu gibt es die Auswahl
-#free (0.2)#
-
- Satzauswahl
- K Kopieren
-
-#free (0.2)#
-im Menü "Gesamtdatei". Als erstes werden Sie nach dem Namen der
-Zieldatei gefragt. Existiert die Zieldatei schon und war sie vorher
-sortiert, werden Sie gefragt, ob Sie die Datei zum Schluß wieder
-sortieren wollen. Wie immer beim Sortieren werden auch hier gege­
-benenfalls nur die neu hinzugekommenen Sätze einsortiert.
- Als nächstes müssen Sie den Namen des Kopiermusters angeben.
-Da das Kopiermuster eine normale Textdatei ist, können Sie sich
-einen beliebigen Namen ausdenken, unter dem das Muster dann
-gespeichert wird.
- Wollen Sie das Kopiermuster nicht aufbewahren, sondern nur
-einmal verwenden, brauchen Sie keinen Namen anzugeben. Drücken
-Sie einfach RETURN und für die Dauer des Kopierens wird das
-Kopiermuster als unbenannte Datei eingerichtet.
- Nachdem Sie den Namen des Kopiermusters eingegeben haben,
-gelangen Sie in den Editor, wo Sie das Muster ändern können. Damit
-Sie beim ersten Mal nicht so viel tippen müssen, bietet EUDAS Ihnen
-bei einer neuen Musterdatei ein #on("i")#Standard-Kopiermuster#off("i")# zum Ändern
-an. Das Aussehen des Standard-Kopiermusters richtet sich danach,
-ob die Zieldatei schon existiert oder nicht.
- Existiert die Zieldatei noch nicht, so werden im Standard-
-Kopiermuster alle Felder der Ausgangsdatei in ihrer originalen Rei­
-henfolge angegeben. Wenn Sie dieses Muster nicht noch ändern, wird
-die aktuelle Datei identisch kopiert.
- Sie können jedoch die Feldreihenfolge verändern oder Felder
-weglassen, indem Sie einfach die entsprechenden Zeilen vertauschen
-oder löschen. Für Umbenennungen überschreiben Sie einfach den
-Namen auf der linken Seite der Kopieranweisung. So können Sie das
-Kopiermuster mit geringstem Aufwand erstellen.
- Existiert die Zieldatei jedoch schon, werden Ihnen im Kopier­
-muster alle Felder der Zieldatei angeboten. Bei Feldern, die in der
-aktuellen Datei nicht vorkommen, erscheint folgende Anweisung:
-
-
- "Anrede" K "";
-
-
-Obwohl die Anweisung in diesem Fall keine Wirkung hat (wenn man
-sie wegließe, würde das Feld ebenfalls leer bleiben), ist sie dennoch
-aufgeführt, damit Sie auf der rechten Seite einen entsprechenden
-Ausdruck einsetzen können.
- Bei den angebotenen Anweisungen hat eine Änderung der Rei­
-henfolge oder eines Feldnamens keinen Sinn, da diese Felder ja alle
-bereits existieren. Jedoch können Sie die Ausdrücke auf der rechten
-Seite variieren und neue Anweisungen (Felder) hinzufügen.
-
-#on("b")#Ablauf#off("b")# Wenn Sie die Eingabe des Kopiermusters mit ESC 'q'
-verlas­
-sen, wird das Kopiermuster übersetzt. Dabei können Fehlermeldun­
-gen auftreten. Sie können dann die Fehler korrigieren, wobei Sie die
-Fehlermeldungen gleichzeitig auf dem Bildschirm sehen können. War
-das Kopiermuster korrekt, werden alle ausgewählten (bzw. markier­
-ten) Sätze der aktuellen Datei in die Zieldatei kopiert und diese
-anschließend gegebenenfalls noch sortiert.
- Die kopierten Sätze werden jeweils am Ende der Zieldatei ange­
-fügt. War die Zieldatei vorher schon sortiert, können Sie angeben,
-daß die neuen Sätze zum Schluß noch einsortiert werden. Anderen­
-falls können Sie die Datei anschließend mit der Funktion 'Sortieren'
-sortieren.
-
-#on("b")#ELAN-Ausdrücke#off("b")# Wenn Sie schon einmal programmiert haben,
-wird
-Ihnen vielleicht aufgefallen sein, daß ein Kopiermuster einem
-ELAN-Programm verdächtig ähnlich sieht. Diese Vermutung trügt Sie
-nicht. Dies läßt den Schluß zu, daß Sie noch mehr ELAN hier an­
-bringen können.
- Haben Sie noch nie programmiert, sollten Sie jetzt nicht in
-Panik geraten, denn das Wichtigste dieses Abschnitts haben Sie
-bereits gelernt. Vielleicht sind Ihnen die folgenden Beispiele bereits
-ganz nützlich. Um alle Möglichkeiten auszunutzen, sollten Sie sich
-aber irgendwann (später!) mit den Kapiteln 14 und 15 befassen, in
-denen Sie Genaueres erfahren.
- Zunächst sei festgestellt, daß der rechte Teil einer Kopieran­
-weisung ein beliebiger ELAN-Ausdruck sein kann, der einen TEXT
-liefert. Den wichtigsten Ausdruck kennen Sie bereits:
-
-
- f ("Feldname")
-
-
-liefert den Inhalt des Feldes 'Feldname' des aktuellen Satzes der
-aktuellen Datei. Gibt es das Feld nicht, erscheint eine Fehlermel­
-dung bei der Ausführung.
- Sie können jedoch auch einen konstanten Text angeben, der
-dann für alle Sätze gleich ist. Dazu schließen Sie den Text einfach
-in Anführungsstriche ein. Die folgende Kopieranweisung dient dazu,
-ein neues Feld einzurichten, das aber vorläufig noch leer bleiben
-soll:
-
-
- "Feldname" K "";
-
-
-Ebenso können Sie mehrere Felder zu einem neuen verbinden, zum
-Beispiel:
-
-
- "Wohnort" K f ("PLZ") + " " + f ("Ort");
-
-
-Das Pluszeichen kennzeichnet die Aneinanderreihung von zwei Tex­
-ten. Denken Sie auch immer an das Semikolon am Ende. In gleicher
-Weise können Sie viele andere Textfunktionen verwenden, die in
-Kapitel 14 beschrieben sind.
- Prinzipiell können Sie auch Bedingungen mit IF abfragen, wie
-zum Beispiel in der folgenden Übersetzung:
-
-
- IF f ("m/w") = "w" THEN
- "Anrede" K "Frau"
- ELSE
- "Anrede" K "Herr"
- END IF;
-
-
-Auf diese Weise können Sie Kodierungen verschiedenster Art auto­
-matisch umsetzen. Sie müssen hierbei jedoch unbedingt darauf ach­
-ten, daß innerhalb der IF-Konstruktion immer eine Kopieranweisung
-ausgeführt wird. Falls nämlich kein Fall zutrifft und für ein Feld
-keine Kopieranweisung ausgeführt wird, wird das Feld bei einer
-neuen Datei auch nicht richtig eingerichtet.
-
-
-11.3 Tragen
-
-In Kapitel 6 hatten Sie gesehen, wie man einzelne Sätze aus der
-aktuellen Datei in eine andere trägt, und auch, wie man sie wieder
-zurückholen kann. Diese Funktion diente im wesentlichen dazu,
-nicht mehr benötigte Sätze zu entfernen.
- Sie haben aber auch die Möglichkeit, eine ganze Reihe von
-Sätzen in einem Arbeitsgang zu tragen, nämlich alle durch das
-Suchmuster ausgewählten beziehungsweise alle markierten Sätze.
-Diese Funktion dient ebenfalls dazu, Sätze zu entfernen, beispiels­
-weise alle Sätze, die vor einem gewissen Stichtag liegen. Als wei­
-tere Anwendung können Sie beim Tragen aber auch Bedingungen
-überprüfen.
- Diese #on("i")#Prüfbedingungen#off("i")# sollen sicherstellen, daß die Daten in
-einer Datei ganz bestimmten Richtlinien entsprechen. Zum Beispiel
-kann geprüft werden, ob ein eingegebenen Datum stimmen kann, ob
-ein Satz doppelt aufgenommen wurde oder ob eine Artikelnummer die
-richtige Anzahl von Stellen hat.
- Die Prüfbedingungen werden einer Datei fest zugeordnet. Sie
-können mit der Funktion
-#free (0.2)#
-
- P Prüfbed.
-
-#free (0.2)#
-im Menü 'Öffnen' eingegeben oder geändert werden. Die Prüfbedin­
-gungen werden als Text im Editor geschrieben.
-
-#on("b")#Ablauf#off("b")# Das ganze Verfahren läuft nun so ab: Sie fügen neue
-Sätze
-immer erst in eine Zwischendatei ein, die die gleiche Struktur wie
-die eigentliche Datei hat. Wenn Sie alle Sätze fertig eingegeben
-haben, tragen Sie diese Datei komplett in die gewünschte Datei.
-Dabei werden die Prüfbedingungen getestet.
- Erfüllt ein Satz die Bedingungen, wird er anstandslos getragen.
-Trifft eine Bedingung aber nicht zu, bleibt der Satz in der Zwi­
-schendatei und eine entsprechende Meldung wird ausgegeben. Die
-Meldungen werden gespeichert, um Sie später nochmal abrufen zu
-können.
- Sie müssen jetzt in der Zwischendatei die notwendigen Ände­
-rungen durchführen, damit die Prüfbedingungen erfüllt werden. Beim
-Aufruf der Funktion
-#free (0.2)#
-
- A Ändern
-
-#free (0.2)#
-können Sie mit Hilfe der Tastenkombination ESC 'P' (großes P) die
-Datei mit den Fehlermeldungen in einem kleinen Teilfenster editie­
-ren. Anhand dieser Hinweise können Sie dann den Satz korrigieren.
-Die Meldungen bleiben bis zum nächsten Öffnen oder Tragen erhal­
-ten.
- Nach der Korrektur können Sie den gleichen Vorgang erneut
-aufrufen - es sind ja nur noch die zuerst fehlerhaften Sätze in der
-Zwischendatei. Bei Bedarf können Sie diesen Vorgang wiederholen,
-bis alle Sätze korrekt übernommen worden sind.
-
-#on("b")#Aufruf#off("b")# Das Tragen wird aufgerufen durch die Funktion
-#free (0.2)#
-
- Satzauswahl
- T Tragen
-
-#free (0.2)#
-Nach Eingabe des Zieldateinamens müssen Sie noch angeben, ob Sie
-die Prüfbedingungen testen wollen.
-
-#on("b")#Prüfbedingungen#off("b")# Zu diskutieren bleibt noch die Form der
-Prüfbe­
-dingungen. Diese stellen ein kleines ELAN-Programm dar, in dem
-einige spezielle Prozeduren zum Prüfen enthalten sind. Wenn Sie
-nicht ELAN programmieren können, sollte Sie diese Bemerkung nicht
-erschrecken: die Prüfbedingungen sind einfach genug.
- Sie schreiben also die Prüfbedingungen jeweils untereinander.
-Eine mögliche Bedingung ist
-
-
- wertemenge ("Feldname", "Wert1,Wert2,Wert3,Wert4");
-
-
-Diese Bedingung gibt an, daß das Feld einen der angegebenen Werte
-haben muß. Die Werte werden untereinander durch Komma getrennt.
-Es gibt jedoch keine Möglichkeit, Werte mit Komma darzustellen, da
-das Komma immer als Trennung wirkt. Leerzeichen dürfen in den
-Werten vorkommen, sie müssen dann aber auch genau so im Feld
-stehen.
- Wir könnten zum Beispiel eine Bedingung für unser Feld 'm/w'
-wie folgt formulieren
-
-
- wertemenge ("m/w", "m,w");
-
-
-EUDAS würde sich dann beschweren, wenn das Feld leer wäre (ir­
-gendein Geschlecht muß die Person ja wohl haben). Wenn das Feld
-auch leer sein darf, geben Sie einfach zwei Kommata hintereinander
-oder ein Komma am Anfang an:
-
-
- wertemenge ("m/w", ",m,w");
-
-
-Eine andere Möglichkeit der Prüfbedingung besteht darin, eine
-Maske für ein Feld zu definieren. Diese Maske gibt an, daß an be­
-stimmten Stellen des Feldes nur bestimmte Zeichen stehen dürfen.
-So könnte man zum Beispiel folgende Maske für ein Datumsfeld
-angeben:
-
-
- feldmaske ("Datum", "99.99.99");
-
-
-Die Neunen haben hier eine spezielle Bedeutung und und stehen für
-eine beliebige Ziffer. Es gibt noch einige weitere Zeichen, die eine
-reservierte Bedeutung haben, nämlich:
-
-
- '9' für jede Ziffer (wie schon erwähnt)
- 'X' für jedes Zeichen
- 'A' für jeden Großbuchstaben
- 'a' für jeden Kleinbuchstaben
- '*' für eine Folge beliebiger Zeichen
-
-
-Alle anderen Zeichen im Muster stehen für sich selbst. Eine Sonder­
-stellung besitzt der Stern; er sollte sparsam verwendet werden, da
-seine Benutzung etwas aufwendiger ist. Der Stern kann auch für
-eine leere Zeichenfolge stehen. Als weiteres Beispiel könnte man
-definieren
-
-
- feldmaske ("Name", "A*");
-
-
-damit immer ein Name angegeben ist, der noch dazu mit einem Groß­
-buchstaben beginnt.
- Für Bedingungen, die sich nicht mit diesen beiden Prozeduren
-formulieren lassen, gibt es noch
-
-
- pruefe ("Feldname", Bedingung);
-
-
-Diese Prozedur erhält einen logischen (booleschen) Wert als Parame­
-ter, der einen Vergleich darstellt. Ist dieser Parameter falsch
-(FALSE), wird eine entsprechende Fehlermeldung protokolliert. So
-könnte man folgende Bedingung angeben:
-
-
- pruefe ("Alter", wert ("Alter") > 18.0);
-
-
-Diese Bedingung würde sicherstellen, daß alle Personen in der Datei
-volljährig sind ('wert' ist eine von EUDAS definierte Funktion, die
-den Inhalt eines Feldes als REAL-Zahl liefert - denken Sie auch
-daran, daß der ELAN-Compiler Zahlen mit Dezimalpunkt geschrieben
-haben möchte).
- Da die Prüfbedingungen ein ELAN-Programm sind, können Sie
-natürlich sämtliche ELAN-Anweisungen verwenden.
- Weiterhin haben Sie die Möglichkeit, Doppeleinträge zu verhin­
-dern. Dazu geben Sie mit Hilfe der Prozedur
-
-
- eindeutige felder (n);
-
-
-wieviele Felder vom ersten an eindeutig sein sollen. Ein zu tragen­
-der Satz, der mit irgendeinem anderen Satz in diesen Feldern über­
-einstimmt, wird als fehlerhaft zurückgewiesen. In unserer Adressen­
-datei könnte man
-
-
- eindeutige felder (2);
-
-
-angeben. Damit würde ein neuer Satz mit bereits vorhandenem Na­
-men und Vornamen abgelehnt.
-
-#on("b")#Limit#off("b")# Aus technischen Gründen können die Prüfbedingungen
-einer
-Datei nur 2000 Zeichen umfassen. Wollen Sie aufwendigere Bedin­
-gungen konstruieren, sollten Sie sich diese als Prozedur definieren
-und insertieren. In den Prüfbedingungen müssen Sie dann nur diese
-Prozedur aufrufen.
-
-
-11.4 Automatische Änderungen
-
-Mit EUDAS können Sie die geöffnete Datei nicht nur satzweise von
-Hand ändern, sondern auch automatisch die ganze Datei. Dazu müs­
-sen Sie dem Rechner eine Vorschrift geben, nach der er handeln
-kann. Ein solches #on("i")#Änderungsmuster#off("i")# stellt im Prinzip schon ein klei­
-nes Programm dar. Der Änderungsvorgang wird durch die Auswahl
-#free (0.2)#
-
- V Verändern
-
-#free (0.2)#
-aufgerufen. Dabei wird der Name des Änderungsmusters erfragt. Dies
-ist eine normale Textdatei. Existiert das Muster noch nicht, können
-Sie den Inhalt an dieser Stelle im Editor angeben. Anschließend
-werden alle ausgewählten Sätze nach der Vorschrift bearbeitet.
-Dabei wird jeweils die aktuelle Satznummer ausgegeben.
-
-#on("b")#Änderungsmuster#off("b")# Da auch ein Kopiermuster ein Programm ist,
-ist
-es nicht erstaunlich, daß Änderungsmuster ganz ähnlich aussehen.
-Eine typische Zeile sieht etwa so aus:
-
-
- "Feldname" V "neuer Inhalt";
-
-
-Diese Zeile bedeutet: Ersetze den Inhalt des Feldes 'Feldname'
-durch den Text 'neuer Inhalt'. Anstelle des neuen Textes kann
-wieder ein beliebiger ELAN-Ausdruck stehen. Ein Beispiel, in dem
-ein Feld einen Stern angehängt bekommt, sieht dann so aus:
-
-
- "Feldname" V f ("Feldname") + "*";
-
-
-Beachten Sie, daß Sie den Ausdruck auf der rechten Seite eventuell
-in Klammern setzen müssen (obwohl der Operator 'V' die niedrigste
-Priorität hat). Wenn Sie sich nicht sicher sind, können Sie den Aus­
-druck immer in Klammern einschließen.
- Ebenso wie im Kopiermuster können Sie hier beliebige ELAN-
-Ausdrücke verwenden. Auch IF-Abfragen und ähnliche Konstruktio­
-nen sind möglich, im Gegensatz zum Kopiermuster sogar ohne Be­
-schränkungen.
- Im Vergleich zu einem separat geschriebenen ELAN-Programm
-hat das Änderungsmuster den Vorteil, daß Sie nur die eigentlichen
-Veränderungsanweisungen kodieren müssen. Die wiederholte Anwen­
-dung auf die ausgewählten Sätze erledigt EUDAS automatisch. Wol­
-len Sie eine solche Änderungsanweisung fest insertieren, so brau­
-chen Sie das Muster nur in eine Prozedur zu verpacken und EUDAS
-zu übergeben (Näheres s. Referenzhandbuch).
-