Microsoft Word 6-Datei PDF-Datei

allegro-C Logo

allegro news Nr.51

Ausgabe 98/3, 22.Oktober 1998
Diese Ausgabe hat 16 Seiten

Universitätsbibliothek der Technischen Universität Braunschweig, Pockelsstr. 13, D-38106 Braunschweig, Tel. (0531) 391-5011, -5026, FAX -5836


www.biblio.tu-bs.de/allegro/

Come autumn, come harvest, reward and relief
for worries and labour and doubt.
Many a thing
in summer and spring,
had a life that was but brief -
now at last what matters is out.

Erntezeit

 

Auch in diesem Jahr ist das "Expertentreffen", mit über 50 Teilnehmern am 22./23. Oktober stattfindend, der Termin für größere Neuvorstellungen. Diese dominieren deshalb auch die vorliegende Ausgabe.

Mehrere der zurückliegenden Nummern haben über diverse neue Konzepte theoretisiert, Lösungsansätze vorgestellt und den Stand und die Ziele der laufenden Entwicklungsarbeiten beschrieben. Jetzt aber ist endlich Erntezeit, jetzt werden anwendbare Programme bereitgestellt - die Früchte der diversen Arbeiten. Grundlagen sind vor allem die Klassenbibliothek und die darauf beruhenden Programme des "avanti"-Servers und des Editor-Moduls EBOX.

Für die Windows-Anhänger gibt es jetzt eine Alternative für das konventionelle Hauptprogramm PRESTO. Eine Variante für den OPAC-Betrieb (Ersatz für APAC) wird sich daraus auch sehr bald ableiten lassen, wenn sich der Bedarf abzeichnet.

Das ist jedoch nicht alles: auch die Arbeiten am Z39.50-System nähern sich dem Abschluß und erlauben die Vorstellung eines Serverpaketes (sog. "Target"-Funktion) sowie diverser neuer Optionen für die Nutzung des Z39.50-Protokolls als Client (sog. "Origin"-Funktion), um auf diesem Wege Fremdkataloge "anzuzapfen", aber auch allegro-Katalge noch besser übers Netz zugänglich zu machen. Die Verbesserungen am avanti-Server, die sich während der Z39-Arbeiten ergeben haben, kommen auch den WWW-Katalogen zugute (s. dazu S. 14/15).

Jedoch ist es nicht so, daß das Kapitel DOS schon endgültig abgeschlossen wäre. Besonders wichtig ist, daß man die neuen Programme parallel zu den alten betreiben kann: alle Programme können zugleich lesend und schreibend auf dieselbe Datenbank zugreifen. Ferner muß erwähnt werden, daß nun auch, rechtzeitig vor der Jahrtausendwende, das Ausleihprogramm aLF nicht nur auf V15-Niveau gebracht wurde, sondern auch kein Problem haben wird mit der Jahreszahl 2000. Das Programm ORDER, nebenbei bemerkt, sowie auch alle Programme des Kernsystems, hatten ohnehin in dieser Hinsicht keinen Handlungsbedarf, denn sie arbeiten schon immer mit vierstelligen Jahreszahlen.

a99

Ohne Zweifel konzentrieren sich Bedarf und Interesse einer breiten Mehrheit von Anwendern auf die Windows-Software. Nachdem die Grundsatzentscheidung gefallen war (news Nr. 47: Win'95 und NT, nicht mehr Win'3.11), konnten die Arbeiten zügig fortschreiten, und zwar auf der Basis des aktuellen Entwicklungssystems Visual-C++. Der größte Einzelposten und konzeptionell der schwierigste war das Editor-Modul, welches zunächst separat entwickelt und unter dem Namen EBOX zum Ausprobieren bereitgestellt wurde (news Nr. 49). Mit a99 wird jetzt ein Programm verfügbar gemacht, das schon sehr weitgehend alle Funktionen des konventionellen PRESTO in neuer Form realisiert, das aber auch eine Reihe von Merkmalen und Leistungen bietet, nicht nur das EBOX-Modul, mit denen es deutlich über PRESTO hinauswächst. "Erntezeit" - das will auch besagen, daß nicht einfach alter Wein in neue Schläuche umgefüllt wird!

Zunächst als "Codename" wurde die Bezeichnung a99 eingeführt, um eine griffige Bezeichnung für das neue Produkt zu haben. Es löst das auf älteren Konzepten beruhende PRESTO-W vollständig ab. Der Name soll nun zumindest für das Jahr 1999 beibehalten werden, weil er auch andeutet, daß es sich noch nicht um ein Endprodukt, sondern um ein Übergangsmodell handelt, das dann spätestens im Jahr 2000 durch ein weiter vervollständigtes Produkt ersetzt werden wird. Dessen Name steht jetzt noch nicht fest, doch der Name allegro-C wird als Oberbegriff natürlich erhalten bleiben.

Neues Denkmodell

Hier ist nicht der Ort, die Unterschiede darzulegen zwischen der "objektorientierten" Programmierung, welche den heutigen Betriebssystemen und der Programmiersprache C++ zugrundeliegt, und der älteren "prozeduralen" Programmierung. Der Übergang zum neuen Stil wurde schon mit der Klassenbibliothek (news 39) eingeleitet, der avanti-Server (news 43) gehört bereits zu den Früchten, aber erst a99 ist ein Produkt, das die neue Denkweise dem Anwender erlebbar macht, weil es direkt mit dem allgemein bekannten älteren Hauptprogramm, PRESTO, vergleichbar ist. Aber was heißt "Neues Denkmodell"?

Wenn jemand mit PRESTO katalogisiert, läuft dabei immer folgendes ab: man beginnt mit dem Eingeben eines neuen Datensatzes und muß diesen zuerst fertigstellen und abspeichern, bevor man mit dem nächsten anfangen kann. Das ist, als ob man beim Zettelkatalog zuerst den momentan bearbeiteten Zettel einsortieren muß, bevor man mit einem neuen anfangen oder andere Zettel sich auch nur ansehen kann. Auf dem Arbeitstisch hat man quasi immer nur den einen Zettel, auf dem man gerade schreibt. Nur ins Register kann man währenddessen schauen, nicht auf andere Zettel. Genau das ändert sich nun grundlegend: auf der Arbeitsfläche kann man jede Menge Zettel herumliegen haben, die entweder gerade neu erstellt wurden und noch unfertig sind, oder die man aus dem Katalog herausgeholt und geändert, aber noch nicht zurücksortiert hat, oder die man aus Fremddaten erhalten hat und noch vorbearbeiten muß. Und jederzeit kann man in die Register schauen, Ergebnisse zusammenstellen, sortieren, vergleichen, speichern, was wirklich fertig ist, Daten exportieren, usw. Am Ende jeder noch so langen Sitzung "weiß" das Programm immer noch genau, welche "Zettel" noch nicht einsortiert sind. Es kann einem diese als Ergebnismenge zeigen, damit man vor dem endgültigen Speichern nochmals Hand anlegen kann. Oder sogar: man läßt alles liegen und stehen und macht irgendwann später genau da weiter, wo man aufgehört hat.

Eilige Leser finden im nachfolgenden, knappen Überblick zunächst die wirklich neuen Leistungen. Es folgen dann detaillierte Beschreibungen der einzelnen Menüpunkte, Button-Funktionen und Unterfenster.

Ergebnismengen

werden nun zu einem zentralen Begriff. Im konventionellen System hat man zu jedem Zeitpunkt nur eine Ergebnismenge, in der man blättern und Veränderungen vornehmen kann. Jetzt kann man auf ältere Ergebnismengen zurückgreifen, sogar auf solche von früheren Sitzungen. Die nachfolgenden Punkte zeigen: Es gibt eine Reihe von neuen Möglichkeiten, mit Ergebnismengen sinnvolle Dinge zu tun. Die maximale Größe einer Ergebnismenge ist momentan 64.000.

Ordnung von Ergebnismengen (S.11)

PRESTO zeigt Ergebnisse immer in der Reihenfolge der internen Satznummern an. a99 kann, wie "avanti" und früher schon das Versuchsprogramm "VP", die Ergebnismengen nach allen Kriterien sortieren, die in der Kurztitelzeile vorkommen.

In jeder dieser Reihenfolgen kann eine Ergebnismenge dann auch sofort exportiert werden, so daß sich zusätzliche Sortierläufe oft erübrigen, d.h. die Listenproduktion wird in solchen Fällen vereinfacht und beschleunigt.

"Externe Ergebnismengen" (Offline-Quelldateien) (S.5)

Aber auch beliebig große (!) externe Grunddateien oder ASCII-Dateien (Dateitypen .cLG und .cDT) können neben der Datenbank zugleich benutzt und bearbeitet sowie im Volltext durchsucht werden. Die externen Titel können einzeln, in Teilmengen oder insgesamt in die Datenbank überführt werden. An diesem Punkt können z.B. auch Ergebnisse von Z39.50-Client-Programmen übernommen, vorbearbeitet und dann gespeichert werden, desgleichen umgewandelte Daten aus CD-ROM- oder anderen Recherchen.

Find-Befehle(S.10+12)

Die vom avanti-Server bekannte Abfragesprache mit symbolischen Registernamen und logischen Kombinationen ist integriert. Damit können dank der Klammerungstechnik auch Ergebnismengen gebildet werden, die man mit PRESTO nicht bilden konnte: z.B. (per beethoven? or mozart?) and (tit sinfonie or konzert).

Derartige Suchbefehle können direkt per Hand eingegeben, aber auch menügestützt ausgelöst werden (S.12).

Formulare, Formulare : Eingabe ganz ohne Kategorienummern

Zwar kann man weiterhin, ohne etwas ändern zu müssen, die Abfrageliste des konventionellen Systems benutzen. Vor allem solche Anwender werden das begrüßen, die in die Gestaltung ihrer Abfragelisten viel Überlegung investiert haben. Jedoch gibt es auch diejenigen, die sich schon seit langem eine Eingabemaske mit festgelegten Feldern wünschen. Dafür wurde zusätzlich ein neues Konzept geschaffen, das in EBOX noch nicht enthalten war: die Erfassungsformulare. Man muß dafür nur eine neue, einfache Textdatei des Typs .FRM anlegen, die nicht viel anders aussieht als die Abfrageliste. Für jeden Satztyp kann man ein oder mehrere eigene Formulare anlegen. Als Beispiel wird CAT.FRM bereitgestellt.

Mit eigenem Editor extern editieren

Mit einem Texteditor eigener Wahl (einzutragen in der .INI-Datei) kann jeder Datensatz außerhalb der Datenbank bearbeitet werden. Dies kann sowohl ein DOS-Editor wie X sein, aber auch ein Windows-Editor wie Notepad. Auf Knopfdruck erhält man den aktuellen Satz im eigenen Editor vorgelegt. Nach Ausstieg aus dem externen Editor kann der Satz sofort wieder eingelesen, mit a99 weiter bearbeitet und dann abgespeichert werden.

Globale Ersetzungen à la carte

In PRESTO muß man die Befehle für globale Ersetzungen auf recht komplizierte Weise eingeben und darauf achten, vor einer weiteren Aktion die Befehle der vorigen Aktion ungültig zu machen. Jetzt können bis zu drei Befehle in einer übersichtlichen Maske eingetragen werden, und zwar kann die Wirkung (wie bei PRESTO) auf bestimmte Felder oder Feldgruppen eingeschränkt werden. Anders als bei PRESTO werden die geänderten Sätze aber nicht sofort abgespeichert:

Speicherung sofort oder später

Während man bei PRESTO einen Datensatz erst speichern muß, bevor man einen anderen aufrufen und bearbeiten kann, ist es bei a99 möglich, beliebig viele Sätze "anzufassen" und erst später (einzeln oder insgesamt) abzuspeichern. Die aktuell in Arbeit befindlichen Sätze kann man sich jederzeit als Ergebnismenge anzeigen lassen (es können beliebig viele sein, das Programm "merkt sich" alles), zwischen denen man beliebig springen kann, um weitere Änderungen vorzunehmen.

Die Sätze werden nicht, wie bei PRESTO, während der Bearbeitung gesperrt, es wird vielmehr, wie bei avanti, unmittelbar vor dem Speichern geprüft, ob der Originalsatz in der Datenbank inzwischen verändert wurde. Das ist sinnvoll, weil zwischen dem Beginn des Bearbeitens und dem Speichern jetzt eine viel längere Zeitspanne liegen kann.

"Undo"-Funktion (beinahe)

Bevor ein bearbeiteter Satz gespeichert wird, kann man die bearbeitete Fassung wieder ungültig und damit die Ausgangsversion wieder gültig machen. Noch besser: man schaltet mit einem Button zwischen der Original- und der letzten Arbeitsfassung hin und her, was einen direkten visuellen Vergleich ermöglicht. Eine global veränderte Ergebnismenge kann sogar vor dem Speichern als Ganzes wieder rückgesetzt werden - damit hat man mehr Sicherheit vor versehentlichen Fehlern.

Alles im Blick

Man sieht in PRESTO immer nur eines der "vier Gesichter" einer Datenbank: das Register bzw. die Kurzanzeige, den Anzeigebildschirm, die Abfrageliste oder den Bearbeitungsschirm. In a99 kann man die entsprechenden Fenster alle gleichzeitig sehen, sogar zwei Register gleichzeitig. Zudem kann man sie so positionieren (dabei auch verkleinern), wie man es praktisch findet. Wenn man durch die Kurzanzeige wandert, werden sofort die Datensätze in den Anzeige- und Kategoriefenstern sichtbar. Und das Register verschwindet nur, wenn man es ausdrücklich will. Bei Speicherung eines Satzes werden die evtl. erfolgten Änderungen im aktuellen Registerabschnitt sofort sichtbar.

Noch mehr Flips

Ein Flip kann eine Registerstelle aufblättern, einen Datensatz zur Anzeige bringen, ein externes Programm starten - das gab es alles schon - aber jetzt kann ein Flip auch ein find-Befehl sein, um eine Ergebnismenge zu bilden und anzuzeigen.

Deutsch oder Englisch?

Wie beim konventionellen System gibt es UIF-Dateien (User Interface Files mit den Menü- und Meldungstexten) und H-Dateien (Hilfsseiten zu den verschiedenen Menüs und Fenstern). Diese Dateien werden auf Deutsch und Englisch bereitgestellt und können vom Anwender beliebig manipuliert werden. Für manchen Geschmack mag das weniger professionell wirken als man es bei Windows-Programmen mit integrierter Hilfe erlebt, jedoch sind so die Texte frei zugänglich und können vom Anwender beliebig angepaßt werden, bis hin zu den Hotkeys der Menüpunkte.

Aber falls man PRESTO trotzdem noch vermißt ...

... kann man in fliegendem Wechsel mit zwei Mausklicks auf dieses bewährte Arbeitspferd umsatteln. Es erscheint derselbe Registerabschnitt, der gerade in a99 benutzt wurde. In PRESTO kann man sich "austoben" und beliebig viele Sätze mit F4 exportieren. Wird PRESTO verlassen, hat man die exportierten Sätze sofort in a99 als Ergebnismenge vor sich!

a99 : Das Hauptfenster

Folgendermaßen sieht das Programm in Aktion aus, wenn gerade ein Datensatz bearbeitet wird.

Hier ist eine "bolero"-Musikdatenbank in Benutzung. Es wurde eine Ergebnismenge mit dem Befehl "per beethoven?" gebildet, diese hat 429 Sätze, und es wurde darin der Satz 157 ausgewählt, Kategorie #22 ist im Schreibfeld. Außerdem ist zu erkennen: der Satz hat die interne Nummer 3188 und besitzt 14 Kategorien, im Hintergrundspeicher sind 9 Kategorien ("Reserve"), die Datenbank heißt "bol" und liegt auf c:\bolero. Die Statusanzeige "Online" besagt, daß gerade der aktuelle Online-Zustand des Satzes zu sehen ist. Sobald man die erste Änderung macht, erscheint links daneben "EDT".

Man sieht sofort, daß die"EBOX" in dieses Programm integriert ist, aber eine Reihe von Elementen hinzugekommen sind. Wie bei der EBOX gibt es das Anzeigefenster, in dem immer der aktuelle Datensatz erscheint (aber auch die Hilfetexte), und drei Eingabe- bzw. Auswahlbereiche:

  1. Die "Select"-Liste an der linken Seite, auch Auswahlfeld genannt,
  2. Das "Find"-Eingabefeld unten links,
  3. Das "Schreiben"-Eingabefeld unter dem Anzeigefenster.

Hinzugekommen ist ganz oben ein Menü mit den Punkten "Datei", "Export", "Extras", "Global", "Optionen" und "?".

Die Buttons wurden anders angeordnet, es sind neue hinzugekommen, einige sind in das Menü verlagert.

Direkt unter dem Anzeigefenster sieht man die neue Auswahlzeile (sog. Combo-Box) für die "Flips". Im Beispiel sieht man, daß man in diesem Fall zu der Liste von Beethovens Werken "flippen" kann.

Neu sind auch verschiedene Anzeigefelder für Status der Bearbeitung, Satznummern und Dateinamen etc.

Einige Buttons und Menüpunkte lassen diverse Dialogfelder erscheinen (keines davon ist oben zu sehen):

"Global"

Der Unterpunkt "Globale Ersetzungen" bringt einen Eingabedialog hervor

[Index]

Das Indexfenster erscheint. Mit [Alt+i] kann man es jederzeit aktivieren und verschwinden lassen (S.8)

[FindMenü]

Ein Dialogfenster zum Erstellen eines Find-Befehls wird geöffnet (S.12)

[Offline-Quelle]

Kurzanzeige der Offline-Datei ("externe Ergebnismenge" zur Auswahl eines Satzes

[Browse]

Kurzanzeige der aktuellen Ergebnismenge, mit Sortierfunktion (S.11)

[Y-Editor]

Der Formular-Editor wird aktiviert. Dazu braucht man eine neue Datei des Typs .FRM

Auf den nachfolgenden Seiten werden alle Elemente erläutert.

Installation

Voraussetzungen:

  1. Windows'95 bzw. '98 oder NT.
  2. Zwei Schriftarten müssen installiert werden: A-LETTER.TTF und A-TIMES.TTF (im Paket enthalten).
  3. Die Bildschirm-Auflösung muß auf mindestens 800x600 eingestellt sein. Das Fenster wird sonst zu groß.

Das gesamte Paket ist in dem Programm a99i.exe verborgen, welches auf dem Verzeichnis ac15/windows des FTP-Servers liegt. Kopieren Sie es auf ein neues Verzeichnis, z.B. C:\A99 und starten Sie es. Anschließend kann a99i.exe gelöscht werden. Sie haben jetzt das eigentliche Programm, a99.exe , und einiges Zubehör. Sehr wichtig ist die Datei a99.ini mit der Erklärung aller Voreinstellungen. Mit dem Befehl a99 wird dann die Demo-Datenbank geöffnet. Für einen ersten, schnellen Versuch können sie auch den Befehl a99 0 geben: Im Menü "Datei" wählen Sie dann "Öffnen" und suchen in der aufklappenden Dateiauswahlbox nach Ihrer Datenbank, d.h. nach der Indexdatei. Wenn Sie diese auswählen, können Sie anschließend schon das meiste ausprobieren. Schreibberechtigung haben Sie aber nur, wenn Sie die a99.ini für Ihre Zwecke anpassen. Änderungen an Ihren Daten sind aber in keinem Fall notwendig!

Falls Sie mehrere Datenbanken haben: Wenn Sie sich für jede Datenbank xyz eine Datei xyz.ini machen, können sie die Batchdatei a9.bat für den Aufruf benutzen: Sie starten dann mit a9 xyz

Anzeigeparameter

Für eine optimale Anzeige der Datensätze müssen Sie aus Ihren Anzeigeparametern (D-1.cPR) mit ein paar Modifikationen eine D-W.cPR machen, doch zunächst funktioniert das Programm auch so (es nimmt dann die D-W0.APR).

Grundeinstellungen:

zl=75

Zeilenlänge (nach Bedarf kürzer oder länger)

zi=0

keine Einrückung

fl=0

kein Kartenmodus

zm=0

kein Seitenumbruch

dx=1

Umcodierung einschalten

i4=1

V14 Ersetzungsmodus

td

Tabelle d.apt laden (ASCII -> ANSI in der Titelanzeige)

Farb- und Druckerbefehle müssen entfernt werden. Das sind normalerweise die Zwischenteile 71 bis 99.

Es muß außerdem einen Abschnitt für die Alternativ-Anzeige geben, der so aussieht: (Button [Anzeige])

#-( Anzeige in Kategorieform (funktioniert für jedes Kategoriesystem)

#t{ s0 &0 #4 } evtl. #4 ersetzen durch #5, #6 oder #7, je nach Länge der Kategorienummern

## oder #L (betr. die Einrückung von Folgezeilen bei langen Datenfeldern)

#t{ C } #L macht einen Pauschalexport mit Feldnamen (aus der CFG) statt Kategorienummern

#+#

Tip: Es gibt beim Export eine Sondervariable #uzo ; diese enthält "0" für Online, "1" für Offline-Sätze. Das kann für eine Steuerung der Anzeige genutzt werden.

Indexparameter

Wichtig ist, daß man die symbolischen Bezeichnungen der Register darin stehen hat, außerdem Zeilen für die Restriktionen, falls die Datenbank welche hat. Beispiele: (siehe Handbuch S. 176 und 334ff)

I PER 1 "Namen von Personen" Zeile für das Register 1

R ERJ r1 "Erscheinungsjahr" Zeile für die Restriktion "Erscheinungsjahr"

Diese Zeilen braucht das Programm, um die Find-Befehle interpretieren zu können, außerdem macht es daraus die Einträge im FindMenü. Die offizielle Version der Datei CAT.API enthält einen Satz solcher Zeilen, die man sich als Beispiele ansehen kann. (Diese Zeilen werden von avanti gleichfalls gebraucht.)

Vorhanden sein sollten auch eine Überschriftszeilen für die Register und für die Kurzanzeige (Zeile |<="..." , S.177).

Die Menüs

Die nachfolgenden Beschreibungen erscheinen auch, etwas knapper, wenn man über '?' die Hilfefunktion aktiviert.

 

Datei : Dieses Menü hat folgende Punkte:

 

Öffnen

Nur aktiv, wenn a99 ohne .INI-Datei gestartet wurde. Man erhält eine Dateiauswahlbox und sucht nach der zubearbeitenden Datei (.?LG, .?LD, .?DT) oder Datenbank (.?DX).

Alle bearb. Daten speichern

Die Online-Sätze, die in dieser Sitzung neu erfaßt oder geändert, aber noch nicht zurückgespeichert wurden, können hiermit insgesamt gespeichert werden. Diese Funktion ist aber auch in Beenden enthalten.

Ergebnismenge -> Datenbank

Alle Sätze der aktuellen Ergebnismenge werden gespeichert, Online-Sätze aber nur, wenn sie verändert und noch nicht zurückgespeichert wurden.

Offline-Datei -> Datenbank

Alle vorher noch nicht einzeln oder per Ergebnismenge gespeicherten Sätze der Offline-Datei werden gespeichert.

Aktuellen Satz drucken

Das Anzeigefenster wird abgedruckt [funktioniert noch nicht].

PRESTO

für den "fliegenden Wechsel" (Voraussetzung: rs.bat und rs.apr existieren im Startverzeichnis)Das Programm PRESTO.EXE wird (per rs.bat) in einem DOS-Fenster gestartet. Es zeigt am Anfang denselben Indexabschnitt, den man vorher in a99 benutzt hatte. Es können alle Funktionen genutzt werden. Mit F8 steigt man aus und befindet sich wieder in a99. !! Wenn man in PRESTO mit F4 eine Erg.Menge exportiert hat (dabei wird rs.apr benutzt), sieht man diese anschließend in a99 vor sich. Damit kann man genauso arbeiten wie mit jeder anderen Ergebnismenge.

 

Externe Ergebnismenge laden

(wichtig für eine schnelle Übergabe von Daten von außerhalb, z.B. per Z39.50) Es wird die Datei EXTERN.DAT geladen (Struktur .cLG oder .cDT); ansonsten passiert dasselbe wie bei:

Weitere Offline-Datei laden

In der dann erscheinenden Dateiauswahl sucht man die gewünschte Datei vom Typ .cLG, .cLD oder .cDT, diese wird dann zusätzlich geladen (egal wie groß), sie wird aber nicht angehängt an die eigentliche Offline-Datei, wenn diese am Ende wieder abgespeichert wird!

Beenden

Es werden verschiedene Fragen zur Entscheidung gestellt, je nachdem, ob man Veränderungen an Offline- oder Online-Daten gemacht hatte. Man kann auch die Sitzung "später fortsetzen"! Dann hat man beim nächsten Start derselben Datenbank alles wieder so vor sich, wie man es verlassen hatte, auch die Ergebnismengen.

Export

Exportiert wird standardmäßig mit den Parametern E-W.APR in die Datei OUTPUT.ADT. Über das Export-Menü läßt sich das aber jederzeit ändern (siehe unten), oder man stellt von vornherein diese Namen in der .INI-Datei anders ein.

Aktueller Satz

Der gerade angezeigte Datensatz wird im aktuellen Zustand exportiert.

Aktuelle Ergebnismenge

Die momentan aktive Ergebnismenge wird exportiert. Unten rechts steht auf der Schaltfläche, welche das ist. (Wie man Ergebnismengen bildet? Gehen Sie in das [Find]-Feld, dann F1 drücken, oder Button[FindMenü]) Wollen Sie auf eine ältere Ergebnismenge zurückgreifen? [Erg.Meng.] drücken und auswählen!

Ganze Offline-Datei

Die gesamte Offline-Datei wird exportiert, und zwar im aktuellen Zustand, d.h. mit allen Veränderungen, die man gemacht hat.

Bearbeitete Offline-Daten

Nur die in der laufenden Sitzung veränderten Offline-Sätze werden exportiert.

Ungültige Sätze

Die in der laufenden Sitzung gelöschten bzw. deaktivierten Sätze werden exportiert. Wenn die beim Start gewählte Offline-Datei (!) eine .ALD-Datei ist: auch die darin (also in der Datenbank) als gelöscht markierten Sätze.

Originale der geänderten Sätze

Die geänderten Offline-Datensätze im Ausgangszustand, also ohne die Änderungen.

Andere Exportdatei

Man kann den Namen der Ausgabedatei ändern. Voreingestellt ist OUTPUT.ADT. Existiert sie, wird angehängt, nicht überschrieben.

Andere Exportparameter

Andere Parameter für den Export auswählen. Jede Datei des Typs .cPR kann ausgewählt werden.

Anzeigeparameter wechseln

Die Parameter für das Anzeigefeld können hiermit ad hoc gewechselt werden. (vgl. PRESTO: F2 F2) Als Standard wird D-W.cPR benutzt. Wenn dieses nicht existiert, das neutrale D-W0.APR, welches für jede Konfiguration funktioniert. In der A99.INI kann eine andere vorgegeben werden. Auch die Schriftart im Anzeigefenster läßt sich ändern, und zwar über das Menü Optionen.

Extras

Dieses Menü hat zwei Abschnitte:

 

[Offline-Datei]

Diese Funktionen gelten nur für die Offline-Daten und sind wichtig, wenn man eine derartige Datei als solche bearbeiten will, z.B. eine exportierte oder eine bei einem Import entstandene Grunddatei.

Ungültige Offline-Sätze

Die über [Satz Lösch.] ungültig gemachten Sätze werden als Ergebnismenge präsentiert.

Geänderte Offline-Sätze

Die während der Sitzung veränderten Sätze werden als Erg.Menge gezeigt.

Gesperrte Sätze [Sonderfunktion]

Gesperrte Sätze aufspüren und anzeigen. Achtung: das geht nur, wenn die Offline-Datei (!) eine .ALD-Datei ist; Entsperrung geht hier noch nicht. (Man starte mit a99 1 und wähle eine solche Datei aus)

Änderungen in Erg.Mg. rückgängig

Die aktuelle Ergebnismenge wird auf den Originalzustand zurückgesetzt. Für Online-Ergebnismengen heißt das: alle noch nicht abgespeicherten Änderungen werden unwirksam. Das ist nach einer mißglückten Globalen Änderung sehr hilfreich: Die Änderungen werden nämlich nicht sofort abgespeichert, sondern man sieht die geänderten Sätze zuerst als Kopien. Diese werden verworfen, wenn man diese Funktion aktiviert.

Ist man dagegen zufrieden mit der Änderung: Funktion Datei / Erg.Mg. speichern sorgt für die Abspeicherung. Oder man wartet bis zum Ende der Sitzung und läßt dann alle geänderten, noch nicht gespeicherten Sätze automatisch abspeichern, unabhängig von den Ergebnismengen.

Offl.-Änderungen rückgängig

Alle Änderungen an Offline-Sätzen werden zurückgenommen, d.h. die Originalsätze werden wieder aktiviert. Für schon abgespeicherte, geänderte Online-Sätze gilt das nicht! Diese können einzeln über [Wechseln] und [Speichern] zurückgesetzt werden.

[Datenbank (Online)] Diese Funktionen beziehen sich nur auf die Online-Sätze:

IN ARBEIT befindliche Sätze

Die Online-Sätze, die verändert aber noch nicht zurückgespeichert wurden, werden als Ergebnismenge gezeigt.

Korrigiert + gespeichert

Die in dieser Sitzung veränderten und schon wieder zurückgespeicherten Online-Sätze.

Gespeicherte Sätze (neu+korr.)

Die in dieser Sitzung insgesamt abgespeicherten Sätze werden als Ergebnismenge genommen, also neue und veränderte.

Neu, noch nicht gespeichert

Alle im Verlauf der Sitzung neu erstellten, aber noch nicht gespeicherten Sätze werden als Ergebnismenge gezeigt.

 

Global

 

Globale Ersetzungen

Ein Dialogfenster mit 3 Eingabezeilen ermöglicht es, bis zu drei gleichzeitige Ersetzungen zu definieren, jede davon wahlweise feldspezifisch. Diese können auf jede Ergebnismenge (online oder offline) angewendet werden. Man aktiviert die gewünschte Ergebnismenge, dann geht man auf dieses Menü.

Globale Manipulationen

Es erscheint ein Dateiauswahlmenü, in dem man nach Dateien des Typs G-*.cP suchen kann. Diese müssen wie bei PRESTO so angelegt sein, daß Datensätze damit manipuliert werden können. (Es muß einen Abschnitt #-# geben) . Zuerst wählt man eine Ergebnismenge aus, dann aktiviert man diesen Menüpunkt.

Globale Löschung

Die momentan aktive Ergebnismenge wird aus der Datenbank gelöscht, wenn es eine Online-Ergebnismenge ist, bzw. deaktiviert, wenn es eine Offline-Menge ist.

In allen Fällen werden die veränderten Sätze nicht sofort in die Datenbank gespeichert, sondern extern aufbewahrt. Es entsteht jeweils eine Ergebnismenge der tatsächlich geänderten Sätze. Diese können Sie als Ganzes speichern lassen oder aber verwerfen, wenn Sie mit dem Resultat nicht zufrieden sind.

 

Optionen

 

Editing

Einer der wenigen noch inaktiven Punkte. Diverse Editor-Optionen sollen hier einstellbar werden.

Datenfont

Die verfügbaren Schriftarten werden zur Auswahl gezeigt. Wirkung: Select-Liste und Schreibfeld.

Anzeige-Font

Die Schriftart im Anzeigefenster ändern. Achtung: den vollen OSTWEST-Zeichensatz haben nur die Schriftarten "allegro New Roman" (proportional) und "ALLEGROLG" (feste Zeichenbreite, Typ "Letter Gothic").

Die wichtigsten der nachfolgenden Erklärungen kann man auch online abrufen: man drückt F1 und erhält im Anzeigefenster einen Hilfetext, und zwar abhängig davon, welches das aktive Feld ist. Die Namen der Hilfedateien beginnen mit HE, z.B. HEBO1GER für die Hilfe zum [Select]-Fenster, HE_MNGER für die Menüfunktionen. Die Dateien liegen auch auf Englisch vor, die betreffenden Namen enden mit ENG.

Die Bezeichnungen der Menüpunkte und Beschriftungen der Buttons stehen in der Datei UIFEGER bzw. auf Englisch in UIFEENG, die Hotkeys sind durch '&' markiert. Wie die Hilfetexte kann man auch diese UIF-Texte ändern.

Die Buttons

Es folgen die Beschreibungen der Buttons (auf Deutsch oft "Schaltflächen" genannt). Online erhält man diese Beschreibungen, wenn man in das Anzeigefenster klickt und dann F1 drückt.

[Select] und [Schreiben]

Mit Alt+s kann zwischen dem Auswahlfeld ("Select"-Liste) und dem Schreibfeld hin- und hergesprungen werden, deshalb haben beide denselben Hotkey s.

Im Auswahlfeld können fünf verschiedene Listen stehen. Die Überschrift sagt immer, um was es sich gerade handelt:

(Rechts ist angegeben, welcher Button zu drücken ist, um die betr. Liste zu bekommen)

1. Aktueller Satz

Die Datenfelder des aktuellen Satzes

[Record]

2. Reserve

Die Felder des Hintergrundspeichers

[Reserve]

3. Kategoriesystem

Die Liste der erlaubten Kategorien

[Schema]

4. Abfrageliste

Die Abfrageliste, wie in der CFG definiert

[Abfrage]

5. Ergebnismengen

Die Liste der Ergebnismengen.

[Erg.meng.]

In jedem Fall wählt man eine Zeile aus und drückt [Enter]. Es hängt von der jeweiligen Liste ab, was dann genau passiert.

Weiter geht es in den Fällen 1-4 im Schreibfeld: (im Fall 5 erscheint die Kurzliste der Ergebnismenge)

Hat man aus Liste 1 oder 2 eine Zeile ausgewählt, kann der Inhalt im Schreibfeld bearbeitet werden. Mit [Enter] wird dann der Text in den aktuellen Satz eingeordnet. Ist es eine #u-Veriable, wird sie zurück in den Hintergrundspeicher kopiert. Also kann man, anders als bei PRESTO, auch die #u-Variablen bearbeiten und neu eingeben, besonders auch die Flips!

Hat man aus Liste 3 oder 4 eine Zeile gewählt, muß man im Schreibfeld den Text zu der betr. Kategorie eingeben. Mit [Enter] geht dann der Auswahlbalken zur nächsten Zeile über, bei der Abfrageliste bleibt der Cursor im Schreibfeld, so daß man die Datenfelder schnell hintereinander eingeben kann.

Wird im Schreibfeld F1 betätigt, stellt das Programm fest, was für eine Kategorie gerade bearbeitet wird. Es bringt dann, (wie schon PRESTO: siehe Kap.3.3, S.97) eine Hilfedatei zur Kategorie oder Kategoriegruppe - sofern dafür eine existiert.

Wenn man aus Liste 5 eine Ergebnismenge wählt, wird diese sofort im Browse-Fenster angezeigt und ist dann wieder als aktive Ergebnismenge eingestellt. Nachfolgende Global-Aktionen oder Volltextsuchen beziehen sich dann darauf.

 

[Index]

Das Registerfenster erscheint. Es sieht vorläufig so aus (wird aber noch mehr Funktionen erhalten):

Die 10 Buttons links sind so eingerichtet, daß man z.B. mit Alt+3 auf Register 3 umschalten kann, wie bei PRESTO.

Um eine andere Stelle aufzublättern, muß man allerdings TAB oder Alt+e drücken oder unten in das Eingabefeld klicken, damit man dort einen Suchbegriff eingeben kann. Oben sieht man Nummer und Name des eingestellten Registers.

Drückt man [Enter] auf einer Zeile mit Anzahl 1, wird der zugehörige Satz gezeigt. Ist die Trefferzahl größer als 1, wird daraus die Ergebnismenge gebildet und es erscheint die Browse-Liste mit der Kurzanzeige.

Das Indexfenster bleibt solange geöffnet, bis man [Index] oder Alt+i drückt. Dann wird es zu einem Icon verkleinert, nur ganz beseitigen kann man es nicht - wozu auch? Vom rechten Rand her kann man das Fenster aber schmaler machen.

Geheimtip: mit Alt+j kann man ein zweites Registerfenster öffnen (und schließen), welches unabhängig vom ersten betätigt werden kann. Es hat dann die Überschrift INDEX B.

Mit [Copy] wird der Inhalt der aktuellen Zeile in das Schreibfeld bzw. in die aktuelle Formularzeile kopiert (s.u.).

Mit [Chg] wird die aktuelle Zeile nach unten in die Eingabezeile kopiert, damit man sie dort ändern kann.

[Erg.meng.]

Das Auswahlfenster blättert die Liste der Ergebnismengen auf. Jede davon kann ausgewählt und dann sofort wieder betrachtet und benutzt werden. Mit [Zeil.lösch] kann man eine nicht mehr benötigte Ergebnismenge aus der Liste löschen. Auf die Datensätze der Ergebnismenge hat das keinerlei Wirkung! Die Liste kann maximal 50 Ergebnismengen enthalten, dann wird die älteste (oberste) automatisch gelöscht, wenn eine weitere gebildet wird.

Es gibt immer zwei Sonder-Ergebnismengen: "Letzte Bearbeitungen" (Nicht nur die Sätze der aktuellen Sitzung!) und "Letzte Sätze der Datenbank" (das sind die 20 Sätze mit den höchsten Satznummern, absteigend geordnet).

[Anzeige]

Dieser Button schaltet zwischen der Normalanzeige und der kategorisierten Anzeige hin und her (d.h. er entspricht bei PRESTO der F5-Funktion). Notwendig ist, daß man in den Anzeigeparametern einen Abschnitt #-( hat, in dem steht, wie diese Anzeige aussehen soll (siehe S.4 unter "Installation").

[Get]

Eine Erfassungshilfe. Das Programm liest dann die Hilfsdatei E.ADT und ordnet den Inhalt in den aktuellen Datensatz ein. E.ADT muß deshalb korrekte Daten enthalten: Zeilen, die mit '#' und gültigen Kategorienummern anfangen. Man kann dies nutzen, um vorbereitete Datenfelder in ausgewählte Sätze einzuspeisen. Nützlich, wenn man Erfassungsaktionen macht, wobei bestimmte Kategorien sich ständig wiederholen. E.ADT wird jedesmal neu eingelesen, kann also extern manipuliert werden, während a99 läuft. Deshalb kann man E.ADT auch aus einem zweiten a99 heraus erzeugen lassen. Das ist eine mögliche Methode, Datensätze aus einer "allegro"-Fremddatenbank zu übernehmen (Ersatz für Alt+a von PRESTO, s.S. 13). In der Fremddatenbank benutzt man dagegen den [Extern]-Button, um einen Satz auszugeben:

[Extern]

Der Datensatz wird mit den Parametern E-W.APR in eine Hilfsdatei EXX.XXX exportiert, dann wird der externe Editor aufgerufen, und zwar standardmäßig der X-Editor in einer DOS-Box. Soll es ein anderer sein: Zeile "Editor" in A99.INI ändern. Nach Rückkehr aus dem Editor wird zur Sicherheit gefragt, ob der bearbeitete Satz wieder eingelesen werden soll. In E-W.APR muß der Befehl to eingebaut werden, wenn der Editor mit ANSI arbeitet, also z.B. Notepad statt X.EXE. Die Tabelle O.APT wird dann zum Umcodieren gebraucht. Ein anderer Name als EXX.XXX kann mit dem Befehl ExEdFile in A99.INI eingestellt werden. Siehe auch weiter unten den Abschnitt "Datenübernahme".

[Abfrage] / [Schema] Umschaltung zwischen Abfrageliste und Kategorienschema

Die Aufschrift wechselt, je nach Inhalt der Liste! Man sieht entweder die Liste der gültigen Kategorien oder die Abfrageliste. Beides wird aus der CFG entnommen.

[Record] / [Reserve] Umschaltung zwischen Datensatz- und Hintergrundspeicher-Anzeige

Auch hier wechselt die Aufschrift. Wenn die Hintergrundkategorien erscheinen, kann man die #u-Variablen auch bearbeiten, im Gegensatz zu PRESTO. Einfach auswählen, [Enter] drücken, ändern, [Enter].

[Kopieren]

Zwischen Datensatz und Reservespeicher können hiermit angewählte Kategorien hin- und her kopiert werden.

[M/V] (Markieren/Verschieben)

Nur benutzbar, wenn ein hierarchischer Satz geladen ist. Man setzt den Balken auf die #01 eines Untersatzes und drückt diesen Button zum Markieren. Dann bewegt man den Balken in einen anderen Untersatz hinein, NICHT auf dessen #01, und drückt erneut diesen Button. Der markierte Untersatz wird dann hinter den zweiten geschoben.

[Zeil.lösch.]

Die aktuelle Zeile in der Auswahlliste wird gelöscht. Trifft nur dann nicht zu, wenn die Kategorieliste oder die Abfrageliste angezeigt wird. Wenn die Liste der Ergebnismengen aktiviert ist, wird die betr. Ergebnismenge beseitigt. Wenn ein hierarchischer Datensatz gezeigt wird und der Balken auf der #01 eines Untersatzes steht, wird der gesamte Untersatz beseitigt, aber nicht ohne Rückfrage.

[Speichern]

Der aktuelle Satz wird in die Datenbank gespeichert. Wenn es ein Offline-Satz war, ist anschließend die Offline-Datei um einen Satz ärmer. Jedoch kann man am Ende die Offline-Datei unverändert bestehen lassen!

Wenn es ein Datenbanksatz war, ist anschließend die vorherige Version als Kopie verfügbar und kann mit dem [Wechseln]-Button aktiviert werden. Mit nochmaligem [Speichern] kann man somit den alten Zustand wiederherstellen!

[Neusatz]

Der aktuelle Satz soll so, wie er ist, als neuer Datensatz dupliziert werden. Der alte bleibt dann unverändert, der neue kann sofort bearbeitet werden. Aber man kann auch entscheiden, einen ganz neuen Datensatz einzugeben. Dann erscheint die Abfrageliste und das Anzeigefeld ist zuerst leer. Mit Alt+y auf Wunsch Formular aufrufen oder mit [Get] den Externsatz einlesen (siehe [Extern])!

[FindMenü]

Es erscheint ein Dialogfeld, in dem man Online- und Volltext-Suchbefehle formulieren kann, wobei die Register aus einer Liste ausgewählt werden können, ebenso die Einschränkungen (Restriktionen). s.u. [FindMenü]

[Satz Lösch.] / [Deaktivieren]

Den aktuellen Satz löschen, wenn es ein Online-Satz ist, bzw. de-aktivieren, wenn es ein Offline-Satz ist.

Die Aufschrift wechselt danach zu

[Aktivieren]

Damit kann der Satz sofort wieder gültig gemacht bzw. die Löschung aufgehoben werden! Man beachte aber:

Offline-Satz: Erst bei "Datei / Beenden" wird das Löschen wirklich wirksam.

Ein Online-Satz wird mit dem Knopf [Satz Lösch] gelöscht (wie bei PRESTO, d.h. die Registereinträge verschwinden). Die Aufschrift des Buttons wechselt dann zu [Aktivieren], in der Status-Anzeige steht DEL.

[Wechseln]

Nach Veränderungen kann hiermit der Originalsatz wieder aktiviert und erneut verändert werden. Mit diesem Knopf schaltet man zwischen dem Originalsatz und der letzten veränderten Fassung (Status "EDT") hin und her.

Gespeichert wird am Ende die zuletzt aktivierte Variante. Wenn dies der Originalsatz ist, bleibt er unverändert.

[Offline-Quelle]

Es wird die Kurzliste der Offline-Datei zum Durchblättern angezeigt. (s.u. "Browse-Liste")

Wenn man Bearbeitungen an der Datenbank vorgenommen hat, sind die bearbeiteten Sätze hinten angehängt, können also auch auf diesem Wege wiedergefunden werden. Mit [Enter] holt man einen Satz in die Anzeige und kann ihn sofort bearbeiten. Läßt man den Balken durch die Kurzliste wandern, wird dabei jeder Satz sofort in den Hauptfenstern gezeigt.

Man schiebt das Kurzlisten-Fenster zur Seite oder nach unten, damit man mehr von der Anzeige sehen kann.

[Voriger] Der vorangehende Offline-Satz erscheint

[Nächster] Der nächste Offline-Satz erscheint.

[Browse]

Die längliche Schaltfläche rechts unten trägt den Namen der aktuellen Ergebnismenge. Diese wird im Kurzanzeige-Fenster gezeigt, wenn man auf die Schaltfläche oder auf [Browse] oder Alt+b drückt. (s.u. "Browse-Liste")

Der Button [Browse] ist nur dazu da, damit man per Alt+B die Ergebnisliste ohne Maus holen kann.

Die Anzeige unterscheidet sich: Online-Sätze werden als Kurzzeile aus der .STL-Datei geholt, Offline-Sätze werden als lange Zeichenkette gezeigt, mit Kategorienummern.

[Nach oben]/[Nach unten]

Vorigen/Nächsten Satz der Ergebnismenge zeigen. Man muß also nicht immer die Kurzanzeige zuerst aufblättern.

[Y-Editor]

Damit ruft man die Eingabeformulare auf, die in der .FRM-Datei hinterlegt sind. Beispiel: CAT.FRM.

 

Das Find-Eingabefeld : avanti-Suchbefehle und mehr

In dem Eingabefeld "Find" können Sie folgendes eingeben:

a) eine Nummer, um einen bestimmten Offline-Satz zu laden

z.B. 1500 um den 1500. Satz zu holen

Für Kenner: eine Zahl mit '#' um einen oder mehrere Online-Sätze zu laden: z.B. #658 oder #14,23,34,42

b) Offline-Suchbefehl zur Volltextsuche in der Offline-Datei: dabei gibt es drei Möglichkeiten.

Solche Befehle müssen mit einem Fragezeichen beginnen:

  1. ?abc
  2. Suche die Zeichenkette "abc" in der Offline-Datei

    Exakte Schreibweise, Maskierung mit '?'

    z.B. ?Me?er : alle Sätze, in denen Meyer oder Meier vorkommt (aber auch Meter !)

  3. ?#nnn,abc
  4. Nur im Feld #nnn nach "abc" suchen

    z.B. ?#74,Berlin : alle Sätze, in denen im Feld #74 das Wort Berlin vorkommt.

  5. ?X|Y Suchen und Ersetzen in der Offline-Datei (Leichter geht's über das Menü "Global")
  6. Zeichenkette X soll durch Zeichenkette Y ersetzt werden

    z.B. ?Geige|Violine ersetzt überall Geige durch Violine

    Auch dieses geht kategoriespezifisch:

    ?#81,Geige|Violine ersetzt nur im Feld #81

    c) Online-Suchbefehl:

    Statt Suchbefehle mit der Hand einzugeben, kann man auch den Button [FindMenü] drücken. Es öffnet sich dann ein Dialogfeld, in dem man sowohl online- wie offline-Suchbefehle formulieren kann. (s.u. "Find-Befehle per Menü", S.12)

  7. avanti-Suchbefehl (sehr ähnlich wie PICA-Suchbefehle), z.B.
  8. per shakesp? and tit hamlet

    Über den Hilfepunkt '?' im Menü erfährt man, welche Register die Datenbank besitzt.

    Auch Restriktionen und Expansionen (SR-Schlüssel!) können eingesetzt werden, z.B.:

    per &shakesp? and erj >=1989

  9. Volltextsuche in der Ergebnismenge (online oder offline)
  10. Man setzt ein '+' vor den Suchbegriff, der dann exakt eingegeben werden muß.

    z.B. +#20,Klavier Im Datensatz muß das Wort "Klavier" im Feld #20 vorkommen.

  11. !iabc Zeige Register i ab der Position "abc", 50 Zeilen (i=1,...,9)

Ein Sonderservice! Der Registerausschnitt wird in das Anzeigefenster kopiert

Vorteil: hier kann man den Text markieren und kopieren; im Indexfenster geht das nicht.

Die Befehle außer 6 erzeugen jeweils neue Ergebnismengen, wenn es mehr als einen Treffer gibt.

Hilfsfunktion: Im Find-Feld nur einen Punkt eingeben, dann erscheinen die Schlüssel des aktuellen Satzes (PRESTO: F7).

Das Flip-Feld : Multimedia-Anbindung und mehr

Unter dem Anzeigefester sieht man eine "Combo-Box". Sie ist dazu da, Flips anzuzeigen und zur Auswahl zu stellen. Die Flips müssen mittels der Variablen #uZi (mit i=0,1,...,9) in den Anzeigeparametern programmiert werden. Bei PRESTO gibt es noch weitere Möglichkeiten, Flips zu programmieren, namentlich die Sonder-Sprungmarke #-`! Die Anzeigeparameter D-1.APR als Grundlage für D-W.APR müssen also hinsichtlich der Flips u.U. überarbeitet werden.

Im Beispiel (Seite 3) sieht man, daß ein Flip eingerichtet wurde, mit dem man sofort die Liste der Werke des Komponisten abrufen kann.

Mit Alt+i, also anders als konventionell!, können die Flips dann auch über die Tastatur (ohne Maus) aktiviert werden.

Die Beschreibung des Flips kann in der Combo-Box auch im Klartext stehen, dann muß nur zusätzlich die Variable #uYi belegt werden. Diese erscheint dann statt des Inhalts von #uZi in der Combo-Box. Bei PRESTO läßt man statt dessen einen Hinweis mit [i] in der Titelanzeige erscheinen. Zusätzlich kann man das auch hier tun, um den Nutzer zu informieren, welche Wirkungen mit den Kombinationen Alt+i ausgelöst werden können, also Alt+1 bis Alt+9 und Alt+0.

Das erste Flipzeichen (das erste Zeichen in #uZi ) bestimmt darüber, was bei Aktivierung passiert:

?|ixyz

Register i wird bei xyz aufgeblättert, z.B. ?|1shakespeare

~prog

Das Programm prog wird aufgerufen. Wenn es ein DOS-Programm ist, wird eben eine DOS-Box aufgemacht. Wie bei PRESTO ist dies die Möglichkeit, Grafik, Sound usw. anzubinden, oder auch einen Aufruf von Netscape ...

Befehl

Ein Find-Befehl (NEU). Die Ergebnismenge wird gebildet und sofort präsentiert, als hätte man den Befehl mit der Hand im "find"-Feld eingegeben.

Beispiel für einen Befehl: per shake? and tit hamlet

|i term

Dasselbe, aber mit |i statt logischem Registernamen. '?' kann am Ende stehen zwecks Trunkierung.

Beispiel: |1 shakesp? heißt: bilde die Ergebnismenge aus den Einträgen mit "shakesp" im Reg. 1.

Tip für Experten: Im Schreibfeld kann man die Variablen #uZi und #uYi auch mit der Hand eingeben. Das bedeutet, man kann sich ad hoc beliebige Flips manuell schaffen, jeder der genannten Typen ist dabei möglich. Falls man also aus dem Programm heraus jederzeit z.B. mit Alt+9 eine ganz bestimmte Ergebnismenge abrufen können möchte, oder eben mal ein anderes Programm zwischendurch benutzen will...

Das Browse-Fenster : Kurzliste der Ergebnismenge

Eine Ergebnismenge wird folgendermaßen angezeigt: (hier als Beispiel, was herauskommt, wenn man bei Benutzung der Demodatenbank den Find-Befehl per shakespeare? gegeben hat:

Der Sortierzeiger ist auf die Jahreszahl gesetzt, der Sortiermodus ist "Abwärts".

Eine Offline-Ergebnismenge sieht etwas anders aus, weil es dafür keine aufbereiteten Kurzzeilen gibt, außerdem läßt sich eine Offline-Menge nicht sortieren. Bei diesem Beispiel ist das möglich, und man benutzt dazu die Buttons [<<] und [>>].

Wenn man einen davon drückt, verschiebt sich oben das Dreieck, welches die Sortierposition markiert. Man braucht dann nur die [Enter]-Taste niederzuhalten, um die Markierung schnell an die richtige Stelle zu schieben, und mit [ReSort] löst die Neusortierung aus . Mit [Auf/Ab] schaltet man zwischen Aufwärts- und Abwärts-Sortierung um. Beim Sortieren gibt es aber Grenzen: maximal können ca. 16.000 Sätze sortiert werden, was aber dann eine gewisse Weile dauern kann, jedenfalls bei langsamen Netzen oder wenn die Datenbank auf einer CD ist. Um ungebührlich lange Sortiervorgänge von vornherein zu unterbinden, kann man das Maximum in A99.INI einstellen mit Hilfe des Befehls SortMax. Soll im Bedarfsfall eine größere Menge sortiert werden, kann man immer noch ad hoc den Button [ReSort] drücken.

Es wird somit klar, daß es sehr auf eine geschickte Gestaltung der Kurzanzeige ankommt, wenn man mehrere sinnvolle Sortiermöglichkeiten wünscht.

In das "Show"-Eingabefeld der Kurzliste kann man drei Dinge eintragen:

Bei Offline-Daten kann der Button [In-/Aktiv.] dazu benutzt werden, die Datensätze ungültig bzw. wieder gültig zu machen. Ungültige Sätze sind an einem vorangestellten DEL zu erkennen.

Bei Druck auf [Help] kommt die Hilfsseite HE_BRGER.

 

Das "FindMenü" : Find-Befehl per Menü

Nehmen wir an, es soll nach Shakespeare als Person gesucht werden und nach Titeln, die das Wort "drama" enthalten, gewünscht sind nur Titel ab 1989. Man kann im "Find"-Feld diesen Befehl eingeben:

per shakesp? and tit drama and yop >=1989 .

Alternativ ruft man über den Button [FindMenü] folgendes Dialogfeld auf und füllt es so aus, wie hier zu sehen:

Das Programm erstellt daraus selbständig einen Find-Befehl, den Sie anschließend auch in dem Feld "Find" sehen und modifizieren können.

Die Check-Felder "Mit Expansion" sind nur aktivierbar, wenn die Datenbank SR-Schlüssel besitzt.

Der [Repeat]-Button kopiert die Anfrage vom vorigen Mal wieder in das Formular, und mit [Clear] kann man das Formular in den leeren Anfangszustand versetzen.

Das Dialogfenster ist zwar schöner als die schlichte Eingabezeile, aber: es erlaubt nur drei Suchbegriffe und Klammerungen können nicht eingestellt werden. Es ist wohl gar nicht möglich, alles über ein Menü zu steuern, was man mit der avanti-Befehlssprache ausdrücken kann, vor allem wegen der Klammerungen. Anspruchsvolle werden deshalb in der Regel nicht dieses Dialogfenster, sondern das "Find"-Feld verwenden.

Tip 1: In den Feldern für die Suchbegriffe kann man auch mehr als einen eingeben, dann aber mit AND oder OR oder NOT dazwischen. Probieren Sie verschiedene Möglichkeiten aus, um sich damit vertraut zu machen.

Tip 2: Wenn man das "Find"-Feld nutzt und der Platz dort zu knapp ist: F1 drücken, dann wird der Befehl in das Schreibfeld kopiert, mit "f " davor. Dort ist mehr Platz. Generell kann man dort Find-Befehle auf diese Weise eingeben!

Tip 3: Die Umcodier-Routinen aus der Index-Parameterdatei wirken auch hier und bei den Befehlen, die man per Hand eingibt. Auf die Volltextsuche wirkt die Umcodierung jedoch nicht: dafür muß man stets die exakte Schreibweise eingeben.

Wenn man in die unterste Zeile etwas eingibt, wird in der aktuellen Ergebnismenge eine Volltextsuche veranstaltet. Dasselbe würde passieren, wenn man im "Find"-Feld des Hauptfensters einen Suchbegriff mit '+' davor eingibt. Statt in einer Ergebnismenge kann die Volltextsuche in der Offline-Datei durchgeführt werden, man braucht dazu nur den "Radio-Button" mit der Aufschrift "in Offline File" anzuklicken. Es passiert dasselbe wie wenn man im "Find"-Feld des Hauptfensters den Suchbegriff mit '?' davor eingibt. Volltextsuche in der gesamten Datenbank ist hier nicht möglich.

Bei Druck auf [Help] kommt die Hilfsseite HE_CHGER.

Datenübernahme aus einer anderen allegro-Datenbank

Die "Parallelschaltung" von zwei oder drei Datenbanken mittels PRESTO ist sehr beliebt, weil die Fremddatenübernahme kaum schneller und bequemer gehen kann. Mit a99 läßt sich etwas ähnliches veranstalten, wobei sogar die beiden Datenbanken, anders als bei PRESTO, nicht dasselbe Schema zu haben brauchen!

Nehmen wir als Beispiel an, die Fremddatenbank liegt auf D:\FREMD, hat die Konfiguration U und heißt MARC, unsere eigene Datenbank liegt auf C:\ALLEGRO\KATALOG, verwendet A.CFG und heißt CAT. Dann sind folgende Vorbereitungen zu treffen.

A) Auf dem Fremdverzeichnis: Man braucht eine Exportparameterdatei E-A.UPR, welche aus den MARC-Daten solche im A-Format macht. (Wenn das Fremdformat auch A ist, nimmt man E-W.APR, die als Default sowieso genommen wird.)

Auf D:\FREMD legt man eine A99.INI mit diesen Einstellungen, neben denen für die Datenbank:

ExEdfile=c:\allegro\katalog\e.adt

ExportParameter=E-A

OutputFile=C:\allegro\katalog\extern.dat

Konfiguration=U

extern=no

Man startet dann a99 auf D:\FREMD

B) Auf dem Arbeitsverzeichnis C:\ALLEGRO\KATALOG richtet man eine A99.INI ein mit den Einstellungen für die eigene Datenbank. Dann startet man dort a99 zum zweitenmal. Zwischen beiden kann man nun mit Alt+TAB umschalten (statt Alt+a bei PRESTO).

Es gibt nun zwei Möglichkeiten:

Einzelsatz-Übernahme: In der Fremddatenbank kann man einzelne Sätze, die man übernehmen will, mit dem Button [Extern] in die Hilfsdatei E.ADT auf dem eigenen Verzeichnis kopieren. Im eigenen a99 holt man den Satz mit [Get] in die Bearbeitung, nachdem man auf [Neusatz] gedrückt hat.

Ergebnismengen-Übernahme: In der Fremddatenbank bildet man eine Ergebnismenge und exportiert sie über das Menü "Export". Sie landet in der Datei EXTERN.DAT auf dem Arbeitsverzeichnis. Im eigenen a99 holt man über "Datei / Externe Ergebnismenge laden" diese Daten herein. Man hat dann die Daten so vorliegen, als hätte man sie gerade mit der Hand alle eingegeben. Entweder kann man nun diese Sätze zuerst noch bearbeiten und einzeln speichern, oder auch alle zusammen über das Menü "Datei / Ergebnismenge -> Datenbank".

Empfehlung: Flip für verknüpfte Sätze:

Bei PRESTO kann man mit Druck auf H die verknüpften Sätze, die mit dem aktuellen Satz zusammenhängen, zu einer Ergebnismenge zusammenfassen. (Entspricht dem avanti-Befehl fam. Bei Pica heißt das "Familienpräsentation".) Eine solche Funktion läßt sich als Flip programmieren. Wenn man die Identnummer in den verknüpften Sätzen in #00 und in Untersätzen wahlweise in #09 hat, wie es bei A.CFG möglich ist, kann der Flip-Abschnitt in D-W.APR so aussehen:

#nr dZ1 dY1 e0

#00 +#nr e"+" P"+" |98

#09 +#nr e0

#dt +#09X e0

#nr p"Zu dieser Veröffentlichung gehörige Teile!" e"!" =Y1

#09 +#09X c"+" e"+" p"f ppn " P"?" aZ1

#00 e"+" p"f ppn " P"?" aZ1

#09X

Wenn es im Register 9 Einträge mit der Nummer in #00 oder #09 gibt mit einem '+' dahinter, dann wird dieser Flip aktiviert und produziert die gewünschte Ergebnismenge.

Sonderzeichen und Phrasen

Bei Programmbeginn wird PHRASE.A99 eingelesen. Für jeden Buchstaben kann eine Phrase belegt werden (Nummern 1 bis 26 für a bis z), die dann bei Strg+Buchstabe erscheint. Weitere zwei Phrasen je Buchstabe werden mit '\' und Klein-/Großbuchstabe abgerufen ('\' statt Esc!). Bei PRESTO gibt es die Strg-Phrasen nicht, daher ist die Struktur der Datei nicht kompatibel und es wurde ein anderer Name gewählt (PRESTO: PHRASE.APH). Jede Phrase braucht 2 Zeilen.

Beispiele:

Strg+Phrase

\ Großbuchstabe

\ Kleinbuchstabe

3

A

n

ç

Å

ñ

Jede Phrase darf aber aus mehreren Zeichen bestehen wie bei PRESTO.

 

avanti-Server : Neue Version 1.5

Der avanti-Server liegt für alle Plattformen in der Version 1.5 auf unserem ftp-Server zum Download bereit (AVANTI-W(X)-Verzeichnis). Die umgesetzten Verbesserungen und neu hinzugekommenen Funktionen sind in erster Linie den zahlreichen Anregungen der engagierten Anwender zu danken. Wenn Sie von einer Version älter als 1.4c aktualisieren möchten, beachten Sie bitte, daß der avanti-Server keine verkürzte Befehlssyntax mehr verarbeitet. Alle Befehle müssen ausgeschrieben werden (vgl. Hilfeseiten). Eine Kurzform findet sich leider auch im Script ALLEGRO.PL (ca. Zeile 220) der WWW-Schnittstelle. Dieses Script müssen Sie ggf. durch die neue Version ersetzen.

Die wichtigsten Änderungen sind:

Dynamisch veränderbare Maximalgröße der Treffermenge

Bei großen Datenbanken erwies sich eine fest eingestellte Grenze der Treffermenge als Fehlerquelle. Wenn die Zahl der Datensätze zu einem Indexeintrag die Grenze der Treffermenge überstieg, wurden gerade die jüngsten Aufnahmen (mit den höchsten Satznummern) in der kombinierten Suche übergangen. Abhilfe schafft hier eine dynamisch einstellbare Treffermenge. Der neue Befehl

set maxres <zahl> verschiebt die Grenze von der Grundeinstellung 64.000 auf maximal 200.000 Satznummern.

 

Anonymer Zugriff auf die Datenbank

Der Zugriff auf die Datenbank ohne Identifizierung des Benutzers (bislang mit Berechtigungsstufe 0 erlaubt) wird in der neuen Version unterbunden. Wenn ein anonymer Zugriff ausdrücklich erwünscht ist, dann muß in den Einstellungen ([general]) der Schlüssel AnonymousAccess=yes gesetzt sein (UNIX) bzw. das dazu gehörige Dialogfeld markiert werden (WINDOWS).

Differenzierter Fehlerstatus

Die Fehlerprüfung if error ... genügte den zunehmend komplexeren Anforderungen an den Avanti-Server nicht mehr. Ein zusätzlicher, optionaler Qualifizierer erlaubt dem Client nun eine differenzierte Prüfung des aufgetretenen Fehlers. Die Syntax lautet: if error[=<qualification>] <cmd>

Dabei ist <cmd> eine beliebige Kommandofolge, die nur ausgeführt wird, wenn der Fehlerstatus identisch mit dem Qualifizierer ist.

Als <qualification> kann man folgende Zeichenketten einsetzen:

<qualification>

Bedeutung

locked

Datensatz ist gesperrt

noaccess

(Schreib-)Zugriff wurde verweigert

writeerror

allgemeiner Fehler beim Schreiben in die

Datenbank (put update).

xporterror

allgemeiner Fehler beim xport-Befehl

readerror

allgemeiner Fehler beim read-Befehl

ordererror

allgemeiner Fehler beim order-Befehl

qrixerror

allgemeiner Fehler beim qrix-Befehl

norecord

kein Datensatz geladen

nofile

ein (Parameter)-File konnte nicht geöffnet werden

overflow

1. zuviele Treffer (find-Befehl)

2. die auszugebende Datenmenge konnte vom

 Ergebnisspeicher nicht aufgenommen werden.

 Der Auftrag wurde unvollständig ausgeführt.

foundnothing

kein Treffer (find-Befehl)

endindex

durch einen vorangegangenen qrix-Befehl wurde

das Registerende erreicht oder überschritten.

unknown

allgemeiner Fehler (kann immer geprüft werden).

Die Angabe unknown entspricht der

Prüfung ohne [=<qualification>].

Allgemeine Fehlerprüfungen schließen spezielle Fehler ein. Zum Beispiel umfaßt der allgemeine Qualifizierer writeerror die drei untergeordneten Fehler locked , norecord und noaccess.

Wenn kein Qualifizierer angegeben wird gilt die Bedingung in jeder der genannten Fehlersituationen als erfüllt.

Geschützter Zugang zum Register 11

Während die Register eins bis zehn für jeden Zugriff geöffnet sind, ist das Register 11 nur für User mit der Berechtigungsstufe 3 zugänglich. Wir empfehlen, schützenswerte Datensätze (z.B. Ausleih- oder Bestellinformationen) nur über dieses Register recherchierbar zu machen.

 

Zusätzliche qrix-Optionen

Der Befehl qrix - [K] wurde um die Möglichkeit erweitert, K-Schritte im Register rückwärts zu gehen. Der eingegebene Suchbegriff erscheint in der Mitte des Registerauszugs, wenn die Anzahl N der auszugebenden Einträge größer ist als K.

Registereintrag<TAB>Anzahl

 

download set: Trennen der Datensätze

Die Verarbeitung einer mit dem download set -Befehl erhaltenen Menge Datensätze wird dem Client-Programm erleichtert, wenn die Sätze durch eine Trennsequenz unterschieden werden können. Die optionale Erweiterung prefix: "<Satztrenn-String>" leistet dies und arbeitet effizienter als eine download-get next -Schleife. Der vollständige Befehl sieht folgendermaßen aus:

download set [ prefix: "<Satztrenn-String>" ]

 

A Name="compress">Komprimieren und Überwachen des Ergebnisspeichers

Neue Möglichkeiten für Entwickler von Client-Programmen eröffnet der neue compress-Befehl.

Avanti verfügt jetzt über die Möglichkeit, den Ergebnisspeicher nach der bekannten ZIP-Methode zu komprimieren. Dazu muß vor dem ersten Ausgabebefehl (list, download, qrix) der Befehl compress angegeben werden.

Vorteile der Komprimierung:

Das übertragene Ergebnis enthält nach der Komprimierung in der ersten Zeile den Eintrag:

ZLIB:START_COMPRESSED.LENGTH=<Zahl>

Die Startsequenz ZLIB:START_COMPRESSED weist den Client auf ein komprimiertes Ergebnis hin. Die Angabe .LENGTH=<Zahl> ist die unkomprimierte Längenangabe. Sie ermöglicht dem Client, den für das Auspacken bereitzustellenden Speicherplatz abzuschätzen. Als Kompressionswerkzeug wird die Funktion compress() aus der im Quellcode frei verfügbaren Softwarebibliotek ZLIB (http://www.cdrom.com/pub/infozip/zlib/) eingesetzt.

Es existieren unter dieser URL ZLIB-Module für viele Programmier- und Interpretersprachen (z.B. C, Dephi, Basic, Perl, Phython, ...).

Der Client packt das komprimierte Ergebnis anschließend mit der ZLIB-Funktion umcompress() aus.

Umgekehrt ist auch avanti in der Lage, einen komprimierten Auftrag entgegenzunehmen. avanti wird dann das Ergebnis immer komprimiert versenden. Ein compress-Befehl ist nicht mehr nötig. Die optionale Sequenz ZLIB:END_COMPRESSED wird bei der Auftragsannahme als Ende-Zeichen des Kompressionsteils gewertet. Fehlt diese Angabe, wird davon ausgegangen, daß alle Zeichen nach der Startsequenz in komprimierter Form vorliegen.

Ein drohender Überlauf des Ergebnisspeichers wird in der neuen Version überwacht (mit und ohne Komprimierung). In einem solchen Fall muß der Auftrag allerdings unvollständig abgebrochen werden. Der Fehlerstatus ist error=overflow. Sie finden im Verzeichnis AVANTI-W\CLIENT das Beispielscript "overflow.pl", das einen solchen Speicherüberlauf produziert.

 

UNIX: Änderungen in der Initialisierungs-Datei überwachen

Bislang mußte das Programm avanti-x stets neu gestartet werden, wenn die Einstellungen zu den Datenbanken in der Initialisierungsdatei ".avantix" verändert wurden. Der neue Schlüssel IniFileTimeCheck=on in der Section [general] hat eine sofortige Reaktion des Programms auf Veränderungen in der Ini-Datei. zur Folge - allerdings nur wenn die geänderte Einstellung zur Laufzeit vom Programm auch abgefragt wird. Die Datenbankabschnitte werden bei jedem neuen Auftrag erfaßt, die Section [general] dagegen nur beim Programmstart.

Die Einstellung IniFileTimeCheck=off (default) beschleunigt dagegen den Algorithmus, da das Prüfen des Zeitstempels unterbleibt. Außerdem werden die Schlüssel jetzt unabhängig von der Groß-/ und Kleinschreibung erkannt. Die Eigenschaften der Avanti-Ini-Datei entsprechen damit exakt den bekannten Fähigkeiten von Ini-Dateien unter Windows.

Konventionelle Programme

Die verbesserten Programme liegen auf dem FTP-Server 134.169.20.1. Jeder Abonnent hat dafür die Zugangskennungen und Paßwörter erhalten. Auf der nächsten CD im Frühjahr '99 werden wieder alle aktualisierten Programme enthalten sein,

PRESTO : Entsperrung bei Mißerfolg

Wenn wegen einer Sperrung der .TBL-Datei (zu beheben über CockPit "Organisieren / Freigeben") ein Satz nicht gespeichert werden kann (Meldung "bitte warten"), war anschließend der Satz gesperrt. (Diese Sperre wird mit Strg+z aufgehoben.) Diese Ungenauigkeit wurde behoben.

PRESTO und APAC : Neue Nutzervariable

Eine neue Nutzervariable wurde eingerichtet: #uxc. Diese enthält die Kurzzeile, überwelche zugegriffen wurde. Sie ist nur dann besetzt, wenn der aktuelle Zugriff tatsächlich über die Kurzanzeige gegangen ist, also vorher Shift+F8 oder Shift+F9 gegeben worden war. Dieser Tatbestand an sich kann also nun auch abgeprüft werden.

Wenn man allerdings im Anzeigeschirm mit [Cursor rauf] / [Cursor runter] weiterblättert, bleibt der Wert von #uxc unverändert, wie bei #uxa und #uxb (Handbuch S. 191, Kap. 10.2.6.2)

Die tatsächliche Kurzzeile des aktuellen Satzes kann man in jedem Fall erhalten durch den Befehl:

#nr |00 (#nr nur als Hilfskategorie)

Dadurch wird die Kurzzeile in #ux0 kopiert (Handbuch S. 210, Kap. 10.2.6.7)

UPDATE : Künstliche Verlangsamung

Das Programm UPDATE ist zu schnell. Jedenfalls im Netz kommen andere Teilnehmer, die gleichzeitig mit PRESTO arbeiten, beim Speichern kaum noch zum Zuge (Meldung "bitte warten"). Jetzt kann man UPDATE veranlassen, immer eine Anzahl Sekunden zu warten, bevor es sich den nächsten Satz vornimmt. Das macht man mit der neuen Option -Fi, wobei i die Anzahl der Sekunden ist. 2 oder höchstens 3 sollte genügen. Default ist im Mehrplatzbetrieb 1, bei Einzelplatz 0. So war es auch schon vorher.

SRCH : Beachtliche Beschleunigung

Wenn SRCH mit Funktion -f6 läuft (d.h. daß jeder Satz unbesehen exportiert werden soll), dann braucht es für die für die Volltextsuche sonst nötigen V14-Ersetzungen nicht durchzuführen. Dadurch wird es schneller. Das wurde dem Programm beigebracht. Ergänzt wurde eine Option -F, die dem Programm sagt, daß es auch bei -f4 keine Ersetzungen durchführen soll. Diese nutzt man, wenn man weiß, daß die zu suchende Zeichenkette nicht zu einem Feld gehört, wo V14-Ersetzungen eine Rolle spielen. Wenn die Datenbank gar keine V14-Schlüssel hat, kann man diesen Punkt aber ganz ignorieren.

ALFA : Falsche Datumsphrasen

Anders als in PRESTO waren die Phrasen '0' und 'Leertaste' in ALFA nicht mit Datum/Uhrzeit besetzt. Ist korrigiert.

aLF : V15-kompatibel und Jahr-2000-sicher

Auf diese Meldung warteten aLF-Anwender schon eine Weile, aber Kollege Peter Hartwig in Lüneburg hat es geschafft: das Programm ist jetzt in den Kernfunktionen auf dem V15-Niveau und hat kein Problem mehr mit dem Jahr 2000. Die Version liegt bereit, einschließlich einer genauen Anleitung zur Umstellung der Daten und Parameter. Die Tests sind erfolgreich abgeschlossen.

QRIX

wurde nicht mit der Situation fertig, daß genau 10 Zwischendateien am Ende übrig waren. Das klappt jetzt. Allerdings konnte man die Situation retten: die Zwischendateien sind alle noch da, man muß nur den QRIX-Aufruf dann mit der Hand nachholen. Wie der Befehl auszusehen hat, steht in dem Moment am Ende der Datei PROTOK.

Handbuch-Druckfehler

Kap. 12, S.274/276: Option -x für Programm INDEX ist falsch, es muß statt dessen -m1 heißen. Wenn INDEX im Batch gestartet wird, ist nur -m0 zu empfehlen, damit es ohne Halt durchläuft. Wenn -m1 gegeben wurde, kann man jederzeit mit Druck auf 'x' das Programm anhalten, mit nochmaligem 'x' in den Editor springen, von dort mit #e das Programm beenden oder mit #r fortsetzen.

INDEX und QRIX haben beide die Option -T für Testbetrieb. Sie geben dann eine Menge zusätzliche Meldungen aus. Leider reicht Index die Option nicht an QRIX weiter.

In news 50 S. 15 muß es unter "Hilfsabschnitt" heißen: #u2 +A c"s" e0 statt #u1 +A ...

======== -->
Microsoft Word 6-Datei PDF-Datei

© 22.07.1997 UB Braunschweig, Bernhard Eversberg (b.eversberg@tu-bs.de)

Fragen bitte an:

ub@tu-bs.de