summaryrefslogtreecommitdiff
path: root/doc/eudas/eudas.ref.6
diff options
context:
space:
mode:
Diffstat (limited to 'doc/eudas/eudas.ref.6')
-rw-r--r--doc/eudas/eudas.ref.6399
1 files changed, 0 insertions, 399 deletions
diff --git a/doc/eudas/eudas.ref.6 b/doc/eudas/eudas.ref.6
deleted file mode 100644
index 7c8ada6..0000000
--- a/doc/eudas/eudas.ref.6
+++ /dev/null
@@ -1,399 +0,0 @@
-#limit (11.0)##pagelength (16.5)##block#
-#start (2.0,0.0)#
-#page (61)#
-#headodd#
-#center#EUDAS#right#%
-
-#end#
-#headeven#
-%#center#EUDAS
-
-#end#
-#center#1
-
-6 Struktur von EUDAS-Dateien
-
-
-
-EUDAS-Dateien können unabhängig von EUDAS über den Daten­
-typ EUDAT manipuliert werden. Die zur Verfügung stehenden Zu­
-griffsoperationen sind in diesem Kapitel beschrieben.
- Der Datentyp EUDAT ist analog zum Datentyp FILE. Jede
-EUDAT-Variable kann an eine EUDAS-Datei angekoppelt werden.
-Dadurch lassen sich beliebig viele EUDAS-Dateien gleichzeitig be­
-arbeiten. Wie der Abschnitt 6.6 zeigt, sind so auch ganz andere
-Anwendungen realisierbar.
- Die wesentlichen EUDAS-Funktionen (Ansehen, Suchen, Druk­
-ken) können jedoch nicht direkt auf EUDAT-Variablen angewendet
-werden, sondern greifen auf die virtuelle Datei zu, die im nächsten
-Kapitel beschreiben wird.
-
-
-6.1 Der Datentyp SATZ
-
-Der Datentyp SATZ stellt einen einzelnen EUDAS-Satz dar, der
-intern als TEXT realisiert ist. Ein SATZ besteht aus bis zu 256
-Feldern, die jeweils einen TEXT enthalten können. Nach dem Initi­
-alisieren sind alle Felder mit "" vorbelegt. Die Felder können über
-Nummern von 1 bis 256 angesprochen werden.
- Damit kann man sich einen SATZ als dynamisches ROW n TEXT
-vorstellen, das bis zu 256 Elemente haben kann. Anders als ein
-entsprechendes ROW belegt ein leerer SATZ praktisch keinen Spei­
-cherplatz.
- Folgende Zugriffsprozeduren stehen zur Verfügung:
-
-TYPE SATZ
-
-OP := (SATZ VAR, SATZ CONST)
-
-PROC satz initialisieren (SATZ VAR)
- Jeder SATZ muß vor Benutzung initialisiert werden.
-
-INT PROC felderzahl (SATZ CONST)
- Liefert die Nummer des höchsten belegten Feldes.
-
-PROC feld lesen (SATZ CONST, INT CONST feldnr,
- TEXT VAR inhalt)
- Liest den Inhalt des Feldes 'feldnr' in 'inhalt'.
-
- FEHLER:
-
- #on("i")#n ist keine Feldnummer#off("i")#
- 'n' liegt außerhalb des Bereiches 1..256.
-
-PROC feld bearbeiten (SATZ CONST, INT CONST feldnr,
- PROC (TEXT CONST, INT CONST, INT CONST) bearbeite)
- Ruft 'bearbeite' auf, wobei 'bearbeite' ein Text und zwei Posi­
- tionen in diesem Text übergeben werden. Die Positionen geben
- das erste und das letzte Zeichen des durch 'feldnr' ausgewähl­
- ten Feldes an. Ist der Anfang größer als das Ende, so ist das
- Feld leer.
-
- FEHLER:
-
- #on("i")#n ist keine Feldnummer#off("i")#
- 'n' liegt außerhalb des Bereiches 1..256.
-
-PROC feld aendern (SATZ VAR, INT CONST feldnr,
- TEXT CONST inhalt)
- Schreibt 'inhalt' in das Feld mit der Nummer 'feldnr'
-
- FEHLER:
-
- #on("i")#n ist keine Feldnummer#off("i")#
- 'n' liegt außerhalb des Bereiches 1..256.
-
-INT PROC feldindex (SATZ CONST, TEXT CONST muster)
- Falls eines der Felder 'muster' enthält, wird die Nummer dieses
- Feldes geliefert, sonst 0.
-
-
-6.2 Der Datentyp EUDAT
-
-Der Datentyp EUDAT muß ähnlich wie ein FILE an einen benann­
-ten oder unbenannten Datenraum angekoppelt werden. Der Daten­
-raum hat anschließend den Typ 3243. Weitere Zugriffe auf eine
-EUDAT-Variable sind erst nach erfolgtem Ankoppeln zulässig. An­
-derenfalls können undefinierte Fehler entstehen.
-
-TYPE EUDAT
-
-PROC oeffne (EUDAT VAR, TEXT CONST dateiname)
- Koppelt die EUDAT-Variable an die EUDAS-Datei mit dem
- Namen 'dateiname' an. Die Datei wird eingerichtet, falls sie
- noch nicht existiert.
-
- FEHLER:
-
- #on("i")#Datei ist keine EUDAS-Datei#off("i")#
- Die angegebene Datei hat nicht den Typ 3243.
-
-PROC oeffne (EUDAT VAR, DATASPACE CONST ds)
- Koppelt die EUDAT-Variable an den Datenraum 'ds'.
-
- FEHLER:
-
- #on("i")#Datei ist keine EUDAS-Datei#off("i")#
- Der Datenraum wurde bereits verwendet und hat nicht den Typ
- 3243.
-
-Eine EUDAS-Datei ist in Felder und Sätze unterteilt. Die Felder
-werden beim Zugriff über Nummern angesprochen. Jedem Feld ist
-jedoch zur Identifikation ein TEXT als Feldname zugeordnet. Die
-Feldnamen werden als SATZ gespeichert, wobei jedes Feld seinen
-zugeordneten Namen enthält.
-
-INT PROC felderzahl (EUDAT CONST)
- Liefert Anzahl der benannten Felder. Ist zu Anfang 0.
-
-PROC feldnamen aendern (EUDAT VAR,
- SATZ CONST neue namen)
- Setzt die Feldnamen einer Datei. Ist 'felderzahl (neue namen)'
- größer als die Felderzahl der Datei, so wird die Felderzahl der
- Datei entsprechend heraufgesetzt.
-
-PROC feldnamen lesen (EUDAT CONST, SATZ VAR namen)
- Liefert alle Feldnamen in einer SATZ-Variablen.
-
-Eine EUDAS-Datei enthält drei zusätzliche Notiztexte. Zwei davon
-sind bereits reserviert, und zwar:
-#free (0.2)#
- 1: Prüfbedingungen
- 2: Datum der letzten Änderung
-
-Der dritte kann für freie Notizen verwendet werden.
-
-PROC notizen lesen (EUDAT CONST, INT CONST notiz nr,
- TEXT VAR notizen)
- Schreibt die Notizen der EUDAS-Datei in 'notizen' ('notiz nr' =
- 1,2,3).
-
-PROC notizen aendern (EUDAT VAR, INT CONST notiz nr,
- TEXT CONST notizen)
- Ändert die Notizen. Alte Notizen werden dabei überschrieben
- ('notiz nr' = 1,2,3).
-
-
-6.3 Satzposition
-
-Eine EUDAS-Datei läßt sich sequentiell vorwärts und rückwärts
-bearbeiten. Dazu gibt es eine aktuelle Satzposition. Ein bestimmter
-Satz kann auch direkt angesprungen werden. Die Prozeduren, die
-nach dem Inhalt des ersten Feldes suchen, arbeiten besonders
-schnell, da die entsprechenden Sätze über eine Hashmethode gefun­
-den werden.
-
-INT PROC satznr (EUDAT CONST)
- Liefert aktuelle Satzposition.
-
-INT PROC saetze (EUDAT CONST)
- Liefert Anzahl der Sätze.
-
-BOOL PROC dateiende (EUDAT CONST)
- Liefert TRUE, wenn 'satznr' groesser als 'saetze' ist. Die letzte
- erreichbare Satzposition liegt um eins hinter dem letzten Satz
- (um auch am Ende anfügen zu können).
-
-PROC auf satz (EUDAT VAR, INT CONST satznr)
- Positioniert auf den gewünschten Satz. Bei nicht existierenden
- Sätzen wird auf den ersten bzw. hinter den letzten Satz ge­
- sprungen.
-
-PROC weiter (EUDAT VAR)
- Geht einen Satz weiter, jedoch nicht über das Dateiende hinaus.
-
-PROC zurueck (EUDAT VAR)
- Geht einen Satz zurück, falls der erste Satz noch nicht erreicht
- ist.
-
-PROC auf satz (EUDAT VAR, TEXT CONST muster)
- Positioniert auf den ersten Satz, der als erstes Feld 'muster'
- enthält, anderenfalls hinter den letzten Satz.
-
-PROC weiter (EUDAT VAR, TEXT CONST muster)
- Geht weiter, bis das erste Feld 'muster' enthält, bzw. bis hinter
- den letzten Satz.
-
-PROC zurueck (EUDAT VAR, TEXT CONST muster)
- Geht zurück, bis das erste Feld 'muster' enthält, bzw. auf den
- ersten Satz der EUDAS-Datei.
-
-
-6.4 Satzzugriffe
-
-Der aktuelle Satz ist ein SATZ-Objekt. Auf die Felder des aktuellen
-Satzes kann direkt zugegriffen werden.
-
-PROC feld lesen (EUDAT CONST, INT CONST feldnr,
- TEXT VAR inhalt)
- Wirkt wie 'feld lesen' auf den aktuellen Satz.
-
-PROC feld aendern (EUDAT VAR, INT CONST feldnr,
- TEXT CONST inhalt)
- Wirkt wie 'feld aendern' auf den aktuellen Satz.
-
-PROC feld bearbeiten (EUDAT CONST, INT CONST feldnr,
- PROC (TEXT CONST, INT CONST, INT CONST) bearbeite)
- Wirkt wie 'feld bearbeiten' auf den aktuellen Satz.
-
-Der aktuelle Satz kann auch als Ganzes bearbeitet werden.
-
-PROC satz lesen (EUDAT CONST, SATZ VAR satz)
- Liefert den aktuellen Satz.
-
-PROC satz aendern (EUDAT VAR, SATZ CONST satz)
- Ersetzt den aktuellen Satz durch 'satz'.
-
-PROC satz einfuegen (EUDAT VAR, SATZ CONST satz)
- Fügt 'satz' vor dem aktuellen Satz ein.
-
- FEHLER:
-
- #on("i")#EUDAS-Datei voll#off("i")#
- Eine EUDAS-Datei faßt mindestens 5000 Sätze.
-
-PROC satz loeschen (EUDAT VAR)
- Löscht den aktuellen Satz.
-
-
-6.5 Sortieren und Reorganisieren
-
-Zum Sortieren können für die einzelnen Felder Typen angegeben
-werden, damit auch Zahlen und Daten richtig sortiert werden kön­
-nen. Außerdem kann die Feldreihenfolge angegeben werden, nach
-der sortiert werden soll.
-
-PROC feldinfo (EUDAT VAR, INT CONST feldnr, info)
- Setzt den Feldtyp des Feldes 'feldnr'. Es bedeuten
- -1 : normaler Text (Standard)
- 0 : Text nach DIN. Ziffern und Sonderzeichen werden igno­
- riert. Groß-und Kleinbuchstaben gelten gleich. Umlaute
- werden beachtet.
- 1 : Zahl (beim Vergleich werden alle Zeichen außer Zif­
- fern ignoriert).
- 2 : Datum. Es werden Daten der Form "tt.mm.jj" vergli­
- chen.
-
-INT PROC feldinfo (EUDAT CONST, INT CONST feldnr)
- Der Feldtyp des angegebenen Feldes wird geliefert. Zu Anfang
- ist -1 voreingestellt.
-
-INT PROC unsortierte saetze (EUDAT CONST)
- Liefert die Anzahl von Sätzen, die seit dem letzten Sortiervor­
- gang geändert wurden. Bei einer neuen Datei, die noch nie
- sortiert wurde, wird immer 0 geliefert.
-
-PROC dezimalkomma (TEXT CONST komma)
- Stellt das Dezimalkomma ein, das beim Vergleich von Zahlen
- gelten soll.
-
- FEHLER:
-
- #on("i")#Nicht erlaubtes Dezimalkomma#off("i")#
- Nur Texte der Länge 1 sind zugelassen.
-
-TEXT PROC dezimalkomma
- Liefert das eingestellte Dezimalkomma ("," ist voreingestellt).
-
-PROC sortiere (EUDAT VAR, TEXT CONST reihenfolge)
- Sortiert die Datei in der von 'reihenfolge' angegebenen Reihen­
- folge. Dabei enthält 'reihenfolge' an der Stelle 2*i+1 den Code
- der Feldnummer, die als i-te in der Sortierung berücksichtigt
- werden soll. Das Zeichen an der Stelle 2*i gibt an, ob das Feld
- mit der davorstehenden Feldnummer aufsteigend ('+') oder
- absteigend ('-') sortiert werden soll.
-
-PROC sortiere (EUDAT VAR)
- Sortiert die Datei in der zuletzt eingestellten Reihenfolge.
- Wurde noch keine Reihenfolge angegeben, wird die Datei in der
- Feldreihenfolge sortiert.
-
-TEXT PROC sortierreihenfolge (EUDAT CONST)
- Liefert die zuletzt eingestellte Reihenfolge. Wurde noch nicht
- sortiert, so wird "" geliefert.
-
-Nach umfangreichen Änderungen an einer EUDAS-Datei ist eine
-Reorganisation sinnvoll, um "Textleichen" zu beseitigen.
-
-PROC reorganisiere (TEXT CONST dateiname)
- Die EUDAS-Datei mit dem Namen 'dateiname' wird reorgani­
- siert.
-
-
-6.6 EUDAS-Dateien als Assoziativspeicher
-
-In diesem Abschnitt soll ein Beispiel erläutert werden, in dem
-EUDAS-Dateien unabhängig von EUDAS für einen ganz anderen
-Zweck benutzt werden. Das folgende kurze Paket soll ein Abkür­
-zungsverzeichnis realisieren, das auf einer EUDAS-Datei basiert.
-
-
- PACKET abkuerzungsverzeichnis
- DEFINES
- verzeichnis laden,
- abkuerzung einfuegen,
- abkuerzung aendern,
- abkuerzung loeschen,
- langform :
-
- EUDAT VAR verz;
- SATZ VAR satz;
- TEXT VAR inhalt;
-
- PROC verzeichnis laden (TEXT CONST dateiname) :
-
- oeffne (verz, dateiname)
-
- END PROC verzeichnis laden;
-
- PROC abkuerzung einfuegen (TEXT CONST abk, lang) :
-
- auf satz (verz, abk);
- IF NOT dateiende (verz) THEN
- errorstop ("Abkürzung existiert bereits")
- ELSE
- satz initialisieren (satz);
- feld aendern (satz, 1, abk);
- feld aendern (satz, 2, lang);
- satz einfuegen (satz)
- END IF
-
- END PROC abkuerzung einfuegen;
-
- PROC abkuerzung aendern (TEXT CONST abk, lang) :
-
- auf satz (verz, abk);
- IF dateiende (verz) THEN
- errorstop ("Abkürzung existiert nicht")
- ELSE
- feld aendern (verz, 2, lang)
- END IF
-
- END PROC abkuerzung aendern;
-
- PROC abkuerzung loeschen (TEXT CONST abk) :
-
- auf satz (verz, abk);
- IF NOT dateiende (verz) THEN
- satz loeschen (verz)
- END IF
-
- END PROC abkuerzung loeschen;
-
- TEXT PROC langform (TEXT CONST abk) :
-
- auf satz (verz, abk);
- IF dateiende (verz) THEN
- inhalt := "";
- errorstop ("Abkürzung nicht vorhanden")
- ELSE
- feld lesen (verz, 2, inhalt)
- END IF;
- inhalt
-
- END PROC langform;
-
- END PACKET abkuerzungsverzeichnis;
-
-
-Die Prozedur 'verzeichnis laden' koppelt die interne EUDAT-Vari­
-able 'verz' an eine benannte EUDAS-Datei, die eventuell vorher mit
-EUDAS erstellt wurde. In diesem Beispiel sind die Feldnamen egal;
-falls die übergebene EUDAS-Datei noch nicht existiert, wird sie mit
-0 Feldern eingerichtet, was aber nur für eine spätere Anzeige mit
-EUDAS störend wäre.
- Grundlage für das Aufsuchen einer bestimmten Abkürzung bil­
-det immer die Prozedur 'auf satz', die nach dem Inhalt des ersten
-Feldes optimiert sucht. Falls die Abkürzung nicht gefunden wurde,
-wird auf das Dateiende positioniert, daher wird jeweils 'dateiende'
-abgefragt.
- Beim Einfügen eines neuen Satzes muß eine komplette Satz­
-variable angegeben werden, die bereits mit den Inhalten gefüllt ist.
-Beim späteren Ändern kann jedoch direkt auf ein Feld zugegriffen
-werden, ohne die Satzvariable explizit rauszuholen.
- Die Abfrage einer bestimmten Abkürzung bereitet dann keine
-Schwierigkeiten mehr.
- Für die Verwendung von EUDAS-Dateien in diesem Beispiel
-spricht zum einen die einfache Programmierung, zum anderen aber
-auch die Möglichkeit, das erstellte Verzeichnis mit den Hilfsmitteln
-