#limit (11.0)##pagelength (16.5)##block# #start (2.0,0.0)# #page (39)# #headodd# #center#EUDAS#right#% #end# #headeven# %#center#EUDAS #end# #center#1 4 Ansehen und Bearbeiten 4.1 Anzeige Die Anzeige und Eingabe von Einzelsätzen sowie die Eingabe von Suchmustern geschieht in einem Standardformular in einem recht­ eckigen Fenster. Dieses Fenster befindet sich in der rechten Bild­ schirmhälfte. Das Formular besteht aus vier Teilen: der Überschrift, den Feldnamen, den Feldinhalten und der Abschlußzeile (s. Abbildung). Überschrift #free (0.3)# Satz 33 ..SUCH+..MARK-... datei ............... Feld 1 Feld 1 Feld 2 Feld 3 Feldinhalte Feld 4 .............................................................. #free (0.3)# Feldnamen Abschlußzeile #on("b")#Überschrift#off("b")# Die Überschrift zeigt folgende Informationen an: Satz n[-m] Die Satznummer des aktuellen Satzes, bei gekoppelten Dateien auch die Satzkombination. SUCH+/- Zeigt an, ob der aktuelle Satz die eingestellte Suchbedingung erfüllt oder nicht (wird während Eintragungen nicht angezeigt). Wenn keine Suchbedingung eingestellt ist, erscheint diese An­ zeige nicht. MARK+/- Zeigt an, ob der aktuelle Satz markiert ist oder nicht (Wird während Eintragungen nicht angezeigt). Wenn kein Satz mar­ kiert ist, erscheint diese Anzeige nicht. ENDE Wird hinter dem letzten Satz der Datei als Kennzeichnung des Endesatzes ausgegeben. 'Dateiname' Gibt den Namen der ersten geöffneten Datei an. Erscheint statt des Dateinamens, wenn auf eine Koppeldatei umgeschaltet wurde. Feld n/Zeile n Zeilennummer des obersten angezeigten Feldes (bei Anzeige) bzw. der aktuellen Cursorzeile (während Eintragungen). #on("b")#Feldteil#off("b")# Die Feldnamen sind zur Unterscheidung von den Feld­ inhalten invers dargestellt. Die Breite der Feldnamen richtet sich nach der Länge des längsten Feldnamens. Ist dieser zu lang, um noch eine ordentliche Anzeige zu ermöglichen, wird bei einer be­ stimmten Länge der Rest des Namens abgeschnitten. Zwischen dem Feldnamen an der linken Seite und dem dane­ benstehenden Feldinhalt besteht immer eine Korrespondenz, d.h. der Inhalt eines Feldes wird direkt neben dem Namen dargestellt. In der Regel wird pro Feld eine Bildschirmzeile reserviert. Kann der Feld­ inhalt jedoch nicht mehr in einer Zeile untergebracht werden, wer­ den weitere Zeilen zur Darstellung dieses Feldes herangezogen. In diesen Zeilen steht statt des Feldnamens nur ein markierter Leer­ raum. Alle folgenden Zeilen ohne Namen gehören zu dem gleichen Feld. Der Inhalt wird auf diese Zeilen umbrochen, d.h. wenn ein Wort nicht mehr auf die Zeile paßt, wird es komplett in die nächste Zeile geschrieben (wie beim Editor). Wörter werden nur dann zer­ schnitten, wenn sie nicht als Ganzes auf eine Zeile passen. Wörter werden untereinander durch Leerzeichen getrennt. Aus Effizienzgründen werden in bestimmten Fällen auch mehr Folgezeilen als nötig angezeigt. Hat nämlich ein neuer Satz einen kürzeren Inhalt als der vorige, so werden die Feldnamen nur dann wieder zusammengerückt, wenn das ganze Bild neugeschrieben wer­ den muß. Anderenfalls werden nur die Feldinhalte aktualisiert. Die Bildausgabe wird unterbrochen, wenn 'w' oder 'z' gedrückt wurde, da dann die Inhalte des aktuellen Satzes nicht mehr inter­ essieren. #on("b")#Rollen#off("b")# Da nicht alle Felder auf den Bildschirm passen müssen, kann das Bild gerollt werden. Mit ESC UNTEN wird um eine Seite nach unten geblättert, mit ESC OBEN wieder zurück. Hinter dem letzten Feld erscheint ein markierter Balken als Abschlußzeile. Weiter als bis zum Erscheinen dieses Balken kann nicht gerollt werden. Mit ESC '1' wird ganz an den Anfang gerollt, mit ESC '9' ganz ans Ende. Bei Feldern, die sich über mehrere Zeilen erstrecken, kann es passieren, daß nach dem Rollen die erste Bildschirmzeile nicht die erste Zeile eines Feldes ist, also der erste Teil eines Feldes nicht dargestellt wird. Trotzdem wird in diesem Fall in der ersten Anzei­ gezeile der Feldname angezeigt. #on("b")#Feldauswahl#off("b")# Man kann auswählen, welche Felder in welcher Rei­ henfolge angezeigt werden sollen. Dies dient der besseren Übersicht. Von der Anzeige werden nur die ausgewählten Felder behandelt, die anderen Felder bleiben leer, werden nicht verändert oder berück­ sichtigt. Die Anzeigeauswahl ändert jedoch nichts an der Datei­ struktur. Die Feldauswahl ist keine permanente Eigenschaft einer EUDAS-Datei. Sie geht daher bei einem neuen Öffnen oder beim Umschalten auf eine Koppeldatei verloren. #on("b")#Übersicht#off("b")# Im Gegensatz zur normalen Anzeige, bei der ein Satz pro Bildschirm dargestellt wird, können in der Übersicht mehrere Sätze gleichzeitig überschaut werden. Dabei wird jeder Satz in einer Zeile untergebracht. Die Auswahl der Felder, die in der Übersicht er­ scheinen sollen, wird vor Beginn der Funktion erfragt. In jeder Zeile steht die Nummer des jeweiligen Satzes, eine Anzeige, ob er markiert ist (+) oder nicht (-) und die Feldinhalte in der gewählten Reihenfolge und Auswahl, jeweils duch Komma und Leerzeichen getrennt. Inhalte, die nicht mehr auf die Zeile passen, werden abgeschnitten. Es werden nur durch das Suchmuster ausgewählte Sätze ange­ zeigt. Ist der aktuelle Satz nicht ausgewählt, so erscheint an seiner Stelle '<< >>' als Hinweis. In der Überschrift sind die Feldnamen angegeben - durch Komma getrennt, so viele wie hinpassen. Die Satznummer des aktuellen Satzes ist jeweils markiert. In der Übersicht kann geblättert werden. HOP OBEN und HOP UNTEN, OBEN und UNTEN wirken wie im Editor. Durch '+' oder '-' kann auch die Markierung des aktuellen Satzes verändert werden. 4.2 Satzauswahl Die Auswahl der Sätze, die gedruckt oder mit den Funktionen aus Abschnitt 4.4 bearbeitet werden sollen, kann entweder durch eine Suchbedingung oder durch Markierung vorgenommen werden. Wenn mindestens ein Satz markiert ist, werden von den Bearbeitungs­ funktionen nur die markierten Sätze behandelt. Anderenfalls wird die eingestellte Suchbedingung beachtet. Die Bildschirmanzeige richtet sich immer nur nach der einge­ stellten Suchbedingung. #on("b")#Suchmuster#off("b")# Ein Suchmuster gibt für jedes Feld bestimmte Bedin­ gungen an. Es wird im Standardformular mit Hilfe des Satzeditors eingegeben. Dabei stehen neben jedem Feld die Bedingungen für dieses Feld in einer intuitiv verständlichen Form. Folgende Einzel­ bedingungen sind möglich: Muster Inhalt ist gleich Muster Muster.. Inhalt ist größergleich Muster ..Muster Inhalt ist kleiner Muster Muster1..Muster2 Inhalt liegt dazwischen *Muster Inhalt endet mit Muster Muster* Inhalt beginnt mit Muster *Muster* Inhalt enthält Muster * Inhalt ist nicht leer ++ Satz markiert (unabhängig vom Feldinhalt) Die ersten vier Einzelbedingungen beachten auch den Typ eines Feldes (wie er bei der Feldstruktur eingegeben werden kann und beim Sortieren beachtet wird). So werden z.B. bei der Gleichheit von Zahlen alle nicht-numerischen Zeichen ignoriert (s. Sortieren). Die drei Bedingungen mit Stern können auch miteinander ver­ knüpft werden. Die Einzelbedingungen müssen dann alle zutreffen, damit der Satz ausgewählt wird. So bedeutet zum Beispiel das Muster 'M1*M2*M3*M4', daß das Feld mit 'M1' beginnen und mit 'M4' enden muß. Außerdem muß es 'M2' und 'M3' enthalten, jedoch nicht unbedingt in der angegebenen Reihenfolge. Wird der Mustertext durch '&' und einen gültigen Feldnamen der aktuellen Datei ersetzt, findet der Vergleich nicht mit einem Mustertext, sondern mit dem Inhalt des angegebenen Feldes statt. Als Feldtyp für den Vergleich wird in diesem Fall der Typ des Fel­ des genommen, in dem der Vergleich steht. #on("b")#Verknüpfung#off("b")# Einzelbedingungen können durch Voranstellen von '--' verneint werden. Einzelbedingungen für verschiedene Felder werden mit UND verknüpft. Es gibt zwei Arten der ODER-Verknüpfung: die lokale und die globale. Die lokale ODER-Verknüpfung wird durch ein Komma zwi­ schen Einzelbedingungen realisiert. Sie hat eine höhere Priorität als das UND zwischen verschiedenen Feldern. So hat folgendes Such­ muster Feld1 Bed1,Bed2 Feld2 Bed3 die Bedeutung ( Bed1 (Feld1) ODER Bed2 (Feld2) ) UND Bed3 (Feld3) Die globale ODER-Verknüpfung wird durch ein Semikolon repräsen­ tiert. Alle Einzelbedingungen nach dem n-ten Semikolon aller Zeilen werden zu einer Alternative zusammengefaßt. Damit hat das Such­ muster Feld1 Bed1;Bed2 Feld2 Bed3 die Bedeutung ( Bed1 (Feld1) UND Bed3 (Feld2) ) ODER Bed2 (Feld1) Damit ergibt sich für die Priorität der einzelnen Konstruktionen folgende Reihenfolge: höchste Einzelbedingung Verkettung von Einzelbedingungen (UND) Verneinung lokales ODER UND zwischen Feldern niedrigste globales ODER #on("b")#Optimierung#off("b")# Wenn für das erste Feld einer Datei eine Gleich- Bedingung angegeben wurde und keine globale Alternative vorhan­ den ist, kann der Suchvorgang wegen der Dateistruktur optimiert werden, indem nur Sätze untersucht werden müssen, die im ersten Feld den gesuchten Text enthalten. #on("b")#Reservierte Zeichen#off("b")# Im Rahmen der Analyse einer Musterzeile wirken folgende Zeichenfolgen als unbeschränkt reservierte Zeichen: , ; .. * Sie dürfen daher in keinem Mustertext oder Feldnamen vorkommen, da sie als Separator wirken. Die beiden folgenden Zeichenfolgen werden nur zu Anfang eines durch die vorstehenden Separatoren gebildeten Abschnitts erkannt: -- & ++ Sie dürfen daher prinzipiell an weiterer Stelle vorkommen, ohne als Sonderzeichen erkannt zu werden. Alle anderen Zeichen in der Zeile werden dem Mustertext bzw. Feldnamen ohne weitere Interpretation zugeordnet. 4.3 Sortieren und Reorganisieren Eine EUDAS-Datei kann in einer beliebigen Feldreihenfolge sortiert werden. Mit dieser Angabe kann man bestimmen, welche Felder beim Vergleich zweier Sätze berücksichtigt werden sollen und in welcher Reihenfolge. Die Sortierreihenfolge wird in der Datei gespeichert und wird anschließend immer wieder verwendet, wenn keine anderen Angaben gemacht wurden. Der Sortierzustand einer Datei wird ebenfalls gespeichert. Wenn nur wenige Sätze seit der letzten Sortierung verändert wurden, müssen auch nur diese Sätze einsortiert werden. #on("b")#Feldtypen#off("b")# Um eine korrekte Sortierung auch von Zahlen oder Daten sicherzustellen, wird jedem Feld einer EUDAS-Datei ein Feld­ typ zugeordnet, der beim Sortieren (und auch beim Suchen) berück­ sichtigt wird. Es gibt folgende Feldtypen (als Standard wird der Typ TEXT verwendet): TEXT Vergleich von Texten nach dem EUMEL-Code der einzel­ nen Zeichen. Dies ist Standard und sorgt für schnellst­ möglichen Vergleich. Die weiteren Typen brauchen erheb­ lich mehr Zeit. DIN Vergleich nach DIN 5007 (s. EUMEL-Benutzerhandbuch). Umlaute werden korrekt eingeordnet, Groß- und Klein­ buchstaben werden gleichbehandelt, Sonderzeichen werden ignoriert. ZAHL Der Wert einer Zahl wird verglichen. Außer den Ziffern, dem Dezimalkomma und dem Minuszeichen vor der ersten Ziffer werden alle anderen Zeichen ignoriert. Das Dezi­ malkomma ist standardmäßig auf ',' eingestellt, kann aber verändert werden (s. Abschnitt 6.5). Die nicht ignorierten Zeichen werden in eine REAL-Zahl umgewandelt und dann verglichen. DATUM Es werden Daten der Form 'tt.mm.jj' verglichen. In diesem Fall werden Tag und Jahr vertauscht und dann vergli­ chen. Texte mit einer anderen Länge als 8 werden alle als gleich betrachtet. #on("b")#Reorganisieren#off("b")# Wenn viele Änderungen an einer EUDAS-Datei vorgenommen worden sind, steigt ihr Platzbedarf durch viele Text­ leichen an. In diesem Fall empfiehlt es sich, die Datei zu reorgani­ sieren. Auch wenn beim Sortieren viele Sätze vertauscht wurden, sollte die Datei reorganisiert werden, da beim Sortieren die physi­ kalische Reihenfolge der Sätze nicht verändert wird. In diesem Fall ergibt sich nach dem Reorganisieren ein Geschwindigkeitsvorteil. 4.4 Bearbeiten #on("b")#Kopieren#off("b")# Durch Kopieren kann ein Ausschnitt aus der virtuellen Datei in eine andere EUDAS-Datei kopiert werden. Es werden alle ausgewählten Sätze kopiert. Wenn mindestens ein Satz markiert ist, werden alle markierten Sätze als ausgewählt betrachtet, ansonsten alle, die durch die Suchbedingung angegeben sind. Die kopierten Sätze werden am Ende der Zieldatei angefügt. Welche Felder kopiert werden sollen, wird durch das Kopier­ muster angegeben. Hierbei können auch mehrere Felder zu einem verschmolzen werden. Allgemein ergeben sich die Felder der Ziel­ datei aus einem beliebigen ELAN-Ausdruck. Das Kopiermuster ist ein ELAN-Programm und enthält im we­ sentlichen Ausdrücke der Form "Feldname" K Ausdruck ; Durch diese Anweisung wird der Ausdruck in das Feld der Zieldatei mit dem angegebenen Namen kopiert. Existiert dieses Feld in der Zieldatei noch nicht, so wird es als letztes angefügt. Falls die Zieldatei noch nicht existiert, wird sie eingerichtet. In diesem Fall bestimmt also die Reihenfolge der 'K'-Ausdrücke die Reihenfolge der Feldnamen in der Zieldatei. Da die Reihenfolge der 'K'-Ausdrücke wichtig ist, dürfen diese nicht in einer IF-Anweisung stehen, sondern müssen für jeden Satz komplett in der gleichen Reihenfolge ausgeführt werden. #on("b")#Standard-Kopiermuster#off("b")# Vor dem Kopieren wird ein Standard- Kopiermuster zum Editieren angeboten, das sich nach der Zieldatei richtet. Existiert die Zieldatei noch nicht, wird das Muster so kon­ struiert, daß alle Felder der virtuellen Datei unverändert kopiert werden. Wollen Sie einige Felder nicht kopieren, brauchen Sie nur die entsprechenden Zeilen zu löschen; wollen Sie die Felder in eine andere Reihenfolge bringen, müssen Sie die Zeilen umordnen. Existiert die Zieldatei bereits, gibt das Standard-Kopiermuster an, daß alle Felder der Zieldatei einen Wert erhalten. Ist ein Feld der Zieldatei in der virtuellen Datei enthalten, so wird dieses ko­ piert, ansonsten erhält das Feld einen leeren Inhalt. Sie können in diesem Fall weitere Felder angeben oder für die leeren Felder Aus­ drücke formulieren. #on("b")#Tragen#off("b")# Durch Tragen werden alle ausgewählten Sätze der virtuel­ len Datei in eine andere Datei transportiert. Sie sind in der vir­ tuellen Datei dann nicht mehr vorhanden. Damit bei diesem Vorgang keine Informationen verlorengehen können, muß die Zieldatei so viele Felder haben wie die virtuelle Datei. Normalerweise sollte sie in der Feldstruktur mit der virtuellen Datei übereinstimmen. Die getragenen Sätze werden jeweils am Ende der Datei ange­ fügt. Beim Tragen können zusätzlich noch Konsistenzbedingungen überprüft werden. Die Prüfbedingungen sind in der Zieldatei gespei­ chert und können beim Ändern der Feldstruktur angegeben werden. Die Prüfbedingung ist ein ELAN-Programm, das vor dem Tragen des jeweiligen Satzes ausgeführt wird. Durch spezielle Testprozedu­ ren kann das Tragen des Satzes verhindert werden, wenn diese Prozeduren ein negatives Ergebnis liefern. Gleichzeitig wird eine Meldung in eine Protokolldatei geschrieben, die dann zur Identifi­ zierung der fehlerhaften Sätze dienen kann. Folgende Prüfprozeduren stehen zur Verfügung (siehe auch Abschnitt 8.3): pruefe ("Feldname", Bedingung) Hiermit kann eine beliebige Bedingung (BOOL-Ausdruck in ELAN) überprüft werden. wertemenge ("Feldname", "Wert1,Wert2,...,Wertn") Das Feld muß einen in der angegebenen Liste enthaltenen Werte annehmen. feldmaske ("Feldname", "Maske") Das Feld wird auf Übereinstimmung mit der Maske geprüft. Fünf spezielle Zeichen in der Maske können dabei auf mehrere Zeichen zutreffen: '9' alle Ziffern 'a' alle Kleinbuchstaben, Umlaute, 'ß' 'A' alle Großbuchstaben, Umlaute 'X' alle Zeichen '*' Folge von beliebigen Zeichen Der Stern sollte sparsam angewendet werden, da er verar­ beitungsaufwendig ist. eindeutige felder (n) Die Zahl 'n' gibt an, die wieviel ersten Felder der Zieldatei eindeutig sein müssen. Stimmt der zu tragende Satz mit einem Satz der Zieldatei in diesen Feldern überein, wird eine Fehlermeldung erzeugt. Es können auch einzelne Sätze manuell getragen werden. In diesem Fall wird die Prüfbedingung nicht getestet. Ebenso kann der Satz wieder zurückgeholt und in der aktuellen Datei eingefügt werden. #on("b")#Nach Vorschrift ändern#off("b")# Die ausgewählten Sätze der virtuellen Datei können automatisch nach einer Verarbeitungsvorchrift geän­ dert werden. Die Verarbeitungsvorschrift ist ein ELAN-Programm, in dem mit Hilfe des Operators 'V' Änderungen angegeben werden: "Feldname" V TEXT-Ausdruck ; Das angegebene Feld erhält den Inhalt, der durch den Ausdruck angegeben ist. Änderungen an Koppeldateien werden wie im Dialog behandelt (s. Abschnitt 3.4).