allegro Export-Parameter / Grundlagen und Grundregeln

Hinweis: Die Hyperlinks in diesem Dokument funktionieren nur, wenn man die Datei im JanaS-Browser öffnet. Falls Sie gerade einen anderen Browser benutzen, geben Sie in a99 diesen Befehl:

janas expar.htm

Wenn das nicht klappt, kopiert man sie zuerst (über Menü "Datei / Speichern als...") auf c:\allegro\html\expar.htm .

Hier wird versucht, eine Einfachst-Einführung der wichtigsten Grundgedanken zu geben. Um welche
Dateien es geht, steht ganz unten.

Das Ausgeben von Daten, auch Exportieren genannt, gehört bei jedem Datenbanksystem zu den wichtigsten Aufgaben. Denn keine Datenbank ist eine in sich abgeschlossene Welt, jede muß immer mal Daten herausrücken können. allegro hat dafür eine eigene Sprache, die Exportsprache, mit der man das Ausgeben von Daten in allen Einzelheiten so programmieren kann, wie es in einer konkreten Situation gebraucht wird. Wenn man Daten über das Exportmenü des Windows-Programms ausgeben läßt (oder mit F4 beim DOS-Programm), wird dafür in Wirklichkeit fast immer eine Parameterdatei gebraucht. Hier wollen wir zeigen, was das eigentlich ist.

Im Prinzip steht alles im Handbuchkapitel 10, das mit einer ausführlichen Erklärung des Konzepts beginnt. (Tip: in a99 eingeben: h ac10) Mancher Leser findet es trotzdem unverdaulich - wir wissen das. Deshalb dieser Text, der das Kapitel zwar nicht ersetzt, aber hoffentlich besser lesbar macht.

Hinweis: Seit es die FLEX-Makrosprache
gibt, kann man in a99/alcarta und avanti auch mit dem FLEX-Befehl write, also ohne Exportsprache, Daten ausgeben. Aber man kann nicht alles damit machen, z.B. die Titelanzeige kann man damit nicht gestalten: dafür braucht man eine Parameterdatei, die sog. "Anzeigeparameter". Im Normalfall ist das die mitgelieferte Datei D-WRTF.APR.

Zur Sache nun. Gespeicherte allegro-Daten sehen immer so aus:
(Wichtig für Nicht-allegro-Kenner: Datenfelder werden nicht mit Namen benannt, sondern mit Nummern)


#00 875208
#20 All's well that ends well
#40 Shakespeare, William
#41 Fraser, Russell
#74 Cambridge
#75 Cambridge Univ. Pr.
#76 1985
#77 XIII, 154 S.
#85 ¬The¬ New Cambridge Shakespeare
#87 0-521-22150-1
#90 Sh-2692


Die gespeicherten Datenelemente oder Felder beginnen, wie man sieht,  mit # und einer Nummer: Die erlaubten Nummern und ihre Bedeutung stehen in einer Konfigurationsdatei; beim Standardmodell ist das die Datei $A.CFG, man spricht auch von der A-Konfiguration oder vom A-Schema (--> Dokumentation). Der Buchstabe A tritt dann auch in den Namenserweiterungen aller Export- und Import-Parameterdateien auf - wenn man einen Namen wie  D-WRTF.APR oder CAT.API sieht, weiß man: das sind Parameterdateien für das A-Schema. (Mehr dazu weiter unten.) Wenn Sie wollen, können Sie jetzt gleich mal reinschauen in Ihre CFG. Die erlaubten Nummern können Sie aber auch mit Alt+y sehen (im Programm a99), dann erscheinen sie links im Auswahlfeld.
(Anm.: Das $ im Namen $A.CFG geht zurück auf den Versionswechsel von V12 zu V13, siehe Handbuch Anh.A.5. Wenn es $A.CFG und A.CFG beide gibt, nehmen die Programme die $A.CFG, d.h. die A.CFG hat dann keine Wirkung. (Trotzdem: alte CFGs, also V12 oder früher, funktionieren auch noch mit V25.)

Wenn man oft Daten eingibt, sind einem die Nummern ja schnell geläufig. Wenn Daten aber für Endbenutzer angezeigt werden müssen oder wenn man irgendwelche Listen zu erstellen hat oder Ausgabedateien, dann soll dabei keine numerierten Daten erscheinen, sondern z.B. eine Anzeige wie diese: (vergleichen Sie das mit dem, was oben steht)

Signatur: 2650-2692

Shakespeare, William:
All's well that ends well / William Shakespeare; Russell Fraser [Hrsg.].
   Cambridge : Cambridge Univ. Pr., 1985. - XIII, 154 S.
(The New Cambridge Shakespeare)
ISBN 0-521-22150-1


Also etwas gänzlich anderes! Wie kann man das erreichen? Mit einer Export-Parameterdatei. Das ist eine schlichte ASCII-Textdatei, und darin muß die Vorschrift für das Programm stehen, was es mit den Datenfeldern machen soll - damit herauskommt, was man wirklich sehen will.
Damit das herauskommt, was man hier sieht, müßte man eine recht komplizierte Parameterdatei schreiben. Zum Glück gibt es die schon: sie heißt D-WRTF.APR und wird von a99 und alcarta verwendet, um die Daten anzuzeigen. Die Datei D-WRTF.APR wäre aber als Einstieg, als erstes Beispiel, viel zu lang und zu schwierig.

Sie wollen jetzt sicher wissen: wie sieht die einfachste mögliche Parameterdatei aus? Was muß da drinstehen, damit etwas Sinnvolles passiert?
So sieht sie aus (nur drei Zeichen - noch kleiner geht's wirklich nicht!) :

#20


Dadurch wird dem Programm gesagt: Gib den Inhalt von Feld #20 aus.
Das Ergebnis wäre (bei dem oben gezeigten Satz):

All's well that ends well


Mehr nicht! Die Grundidee der Exportparameter ist also sehr einfach, wir nennen sie mal Grundregel 0:

Grundregel 0 :

Eine Parameterdatei enthält die Liste der Felder, deren Inhalte exportiert werden sollen.

Minimum ist ein einziges Feld, siehe oben. Sollen nur Verfasser und Titel herauskommen, sähe die Liste so aus:

#40
#20

Und das hier käme heraus:

Shakespeare, WilliamAll's well that ends well


Denn man hat ja nicht gesagt, was zwischen den beiden Feldinhalten stehen soll - der Computer kann sich das nicht selber ausdenken, also schreibt er nichts dazwischen. Man muß zwar die Feldnummern als Liste untereinander schreiben, das ist die Grundregel, aber dadurch werden nicht automatisch zwei Ausgabezeilen gemacht. Das könnte man so veranlassen:

#40
#20 C


Das C wirkt hier als Steuerzeichen und löst eine neue Zeile aus – und zwar vor der #20 und nur, wenn diese auch belegt ist! Dann sieht das Ergebnis so aus:

 Shakespeare, William
 All's well that ends well

Damit haben wir zwei einleuchtende Grundregeln:

  1. Nummern der gewünschten Felder untereinander schreiben

  2. Ein C hinter die Feldnummer schreiben, wenn deren Inhalt auf eine neue Zeile soll

und damit kann man schon ziemlich weit kommen: man kann alle gewünschten Datenfelder in jeder gewünschten Reihenfolge ausgeben lassen.
Nochmal der Hinweis: wenn das betreffende Feld (oben die #20) nicht belegt ist, wird keine neue Zeile gemacht, d.h. die Anweisung  #20 C  wird ganz ignoriert.

Mit diesem Wissen kann man auch schon eine kompliziertere Parameterdatei einigermaßen verstehen: man findet darin nämlich immer eine Liste von Feldnummern, die jeweils auf eigener Zeile stehen und mit dem Zeichen # beginnen. So sieht immer der Hauptteil einer Parameterdatei aus.

Die nächste Grundregel, eine sehr wichtige und sehr einfache, ist diese:

  1. Zeilen, die mit Leerzeichen anfangen, werden nicht verarbeitet.

Es ist damit ganz leicht, Kommentare in eine Parameterdatei zu schreiben: nur ein Leerzeichen an den Anfang der Zeile, oder zwei, und schon kümmert das Programm sich nicht darum. Sehr leicht kann man also auch Zeilen unwirksam machen, die man gerade nicht braucht, aber später vielleicht wieder. Schauen wir uns dieses Beispiel an:

#20
 #40 C
#76 C

Man erhält als Ausgabe:

All's well that ends well
1985

denn die Zeile   #40 C  wird nicht verarbeitet, weil sie mit einem Leerzeichen beginnt.
Und noch eine wichtige, etwas überraschende Regel:

  1. Stehen in einer Zeile zwei oder mehr Leerzeichen hintereinander, wird der Rest der Zeile nicht verarbeitet.

Dadurch kann man ganz leicht Kommentare in eine Befehlszeile hineinschreiben, nicht nur zwischen die Befehlszeilen. Wenn man also schriebe:

#20   Das ist der Titel
 #40 C  Verfasser
#76 C   Erscheinungsjahr

dann käme dasselbe heraus wie oben, denn vor den Bezeichnungen "Das ist der Titel" usw. steht jeweils mehr als ein Leerzeichen. An diese Regel muß man sich etwas gewöhnen, zugegeben: manchmal macht man aus Versehen zwei Leerzeichen und wundert sich, daß nicht das passiert, was man wollte.
Aber abschwächend kommt hinzu: Zwischen Anführungszeichen gilt diese Regel nicht. Warum? Das sehen wir gleich:

Nun weiter. Man will oft nicht nur die Feldinhalte exportieren, sondern noch gewisse Zusätze, z.B. so etwas:

Titel : All's well that ends well
Verf. : Shakespeare, William
Jahr  : 1985

Dann müßte man schreiben:

#20 p"Titel : "
#40 C p"Verf. : "
#76 C p"Jahr  : "

Dabei bedeutet z.B. die zweite Zeile: Nimm den Inhalt von #40, beginne aber zuerst eine neue Zeile und setze  Verf. :  an den Anfang.
Das kleine p ist ein Manipulationsbefehl, davon gibt es noch viele andere. Das p bedeutet "prefix" und bewirkt, daß eine Zeichenfolge VOR den Feldttext gesetzt wird, in diesem Fall eben "Verf. : Die Zeichenfolge muß hinter dem p innerhalb "..." stehen. Genauso gibt es ein "postfix", um etwas HINTER den Feldinhalt zu schreiben: dazu dient das große P.
Wenn Feld #40 nicht belegt ist, kommt statt dessen keine Leerzeile und auch  "
Verf. : " erscheint nicht. 
Also: Manipulationsbefehle werden nur ausgeführt, wenn das betreffende Feld auch vorhanden ist. Sonst wird die gesamte Zeile nicht ausgeführt.
Nebenbei: Hinter "Jahr" stehen zwei Leerzeichen! Das macht aber nichts, denn zwischen Anführungszeichen hat das keine Wirkung, siehe oben.
Jetzt wird auch klar, warum in den Parametern jedes Feld auf eigener Zeile angegeben werden muß. Das liegt an dieser Regel:

  1. Auf jedes Feld können beliebig viele Manipulationsbefehle angewendet werden, die den Feldtext verändern, bevor er ausgegeben wird.
    Die Befehle müssen neben der Feldnummer alle in derselben Zeile stehen und werden hintereinander von links nach rechts ausgeführt.
    Wenn das Feld nicht belegt ist, werden die Befehle nicht ausgeführt, es kommt sofort die nächste Zeile dran. 

Achtung: Zwischen zwei Manipulationsbefehlen, das ergibt sich aus Regel 4, muß genau ein Leerzeichen stehen! Sind es zwei oder mehr, entfällt der Rest! Daran muß man sich gewöhnen, deshalb wird's hier nochmal gesagt.

Jetzt erkennt man, daß komplizierter aussehende Befehle, wie z.B. dieser hier

#85 C b" ; " p"Bandnummer: " P"."
so schlimm gar nicht sind - man muß nur die Bedeutung der Manipulationsbefehle kennen. Und die kann man nachschlagen: Systemhandbuch, Kap. 10.2.6.3. (S. 194ff, Tabelle der M-Befehle)

Jetzt eine kleine Aufgabe! Was kommt bei unserem Beispiel-Datensatz heraus, wenn in den Parametern steht:

#40 b", "
#40 e", " p" "
#20 p": " P"."

Richtig, das Ergebnis sieht so aus (Vor- und Nachname umgedreht):

William Shakespeare: All's well that ends well.

Mit Kommentaren wird die Sache klarer:

#40 b", "        Inhalt von #40, aber nur den Teil hinter ", " ausgeben
#40 e", " p
" "   Nun den Teil vor ", " nehmen, mit einem Leerz. davor
#20 p": " P"."   Den Titel mit ": " davor anhängen, Punkt dahinter


Die nächste Grundregel ist auch wieder überraschend:

  1. Statt mit # kann eine Befehlszeile auch mit ! anfangen. Der Unterschied zwischen beiden ist, daß zwei verschiedene Tabellen für die Umcodierung der Zeichen existieren können. Diese Tabellen werden definiert mit eigenen Befehlszeilen, die mit  p  anfangen für die #-Zeilen bzw. mit  q  für die !-Zeilen.

Mit den p- und q-Befehlen kann man jedem einzelnen Zeichen einen anderen Code zuordnen oder sogar eine ganze Zeichenfolge, die dann bei der Ausgabe automatisch statt des Zeichens ausgegeben wird.  Das sieht z.B. so aus:
p ä "ae"
Jedes ä wird dann automatisch durch ae ersetzt, aber nur in den mit # beginnenden Zeilen. Wenn es in den mit ! beginnenden Zeilen auch so sein soll, aber AE statt ae, muß man noch eine Zeile ergänzen:

q ä "AE"
Beschrieben ist das im Kapitel  10.2.4.1.

Damit man nicht lange Listen solcher Befehle jedesmal in eine Parameterdatei mit hineinschreiben muß, kann man solche Listen auch in externen Dateien unterbringen und diese Dateien mit hinzuladen lassen. Dafür gibt es den Befehl t. Da wäre z.B. die Datei ad-utf.apt, sie enthält die Tabelle der Umcodierungen vom internen ASCII-Code in den Unicode-Standard UTF8. Wenn man in seine Exportparameter hineinschreibt:
tad-tf8
dann wird die Tabelle ad-utf.apt hinzugeladen und dadurch aktiviert.
Eine andere Standardtabelle ist  ad-aw.apt: sie wandelt den internen ASCII-Code in den Windows-Code um. Minimales Beispiel:

#20
#40 C

tad-aw

Titel und Verfasser werden dann in Windows-Codierung ausgegeben.
Wo muß so ein t-Befehl stehen? Das ist egal, denn er hat nichts mit einem bestimmten Feld zu tun – es sei denn, es stehen in der hinzuzunehmenden Datei nicht nur Codierungsbefehle, sondern auch Exportzeilen, die mit # oder ! beginnen. Es gilt Grundregel 7:

  1. Eine Parameterdatei wird einmal geladen und beliebig oft ausgeführt.
    Nur die eigentlichen Exportbefehle, die mit # oder ! beginnenden Zeilen, müssen deshalb in der erwünschten Reihenfolge stehen, alle anderen Befehle können an beliebigen Stellen stehen. 

Für Programmierer: Nur die Zeilen mit # und ! werden wie ein Programm abgearbeitet, von oben nach unten also (es können aber Sprünge eingebaut werden), die anderen Zeilen werden nur beim Einlesen der Parameter verarbeitet (siehe Regel 7), um bestimmte interne Einstellungen vorzunehmen (d.h. Variablen zu belegen). Das Einlesen passiert nach Regel 7 nur einmal (und nicht immer wieder für jeden Datensatz), anschließend werden dann nur die Zeilen mit # und ! für jeden zu exportierenden Satz abgearbeitet, die anderen Zeilen nicht. Das hat zur Folge: wenn ein Basisparameter zweimal oder öfter angegeben ist, z.B. der Wert zl=..., dann wird nur der letzte wirksam. Im Handbuch finden Sie genaue Beschreibungen, wie ein Datensatz als Ganzes beim Export abgearbeitet wird (Kap. 10.2.6), und dann besonders, wie eine einzelne Befehlszeile ausgeführt wird (10.2.6.1). Wenn's mal komplizierter wird, können diese Beschreibungen sehr helfen...

Jetzt kommt die vorletzte Grundregel. Es gibt eine Anzahl von
Basisparametern. Diese sind dafür da, bestimmte Werte zu setzen oder Schalter einzustellen, die das Verhalten des Exports beeinflussen. Da kommt einiges zusammen, aber meistens muß man nur wenige dieser Befehle geben. Denn:

  1. Für jeden Basisparameter gibt es einen Standardwert, der automatisch genommen wird. Diese Default-Werte sind immer in sinnvoller Weise gewählt, damit man sie nicht jedesmal alle selber setzen muß. [Handbuch Kap. 10.1-5: die Basisparametern bilden 5 Gruppen und haben 2-buchstabige Namen, wobei jede Gruppe einen bestimmten Anfangsbuchstaben hat.]

Beispiel: Oft ist die Ausgabe eine Textdatei. Dabei macht das Programm dann einen automatischen Zeilenumbruch. Es muß dazu wissen, wieviele Zeichen maximal in eine Zeile sollen. Als Standard nimmt es 56 an - das war früher mal bei Katalogkarten sinnvoll. Wenn das Programm keinen Zeilenumbruch selber machen soll, weil das die nachfolgende Software übernimmt, etwa ein Textprogramm, dann setzt man
zl=0
Es ist nötig, an den Stellen, wo unbedingt eine neue Zeile beginnen soll, die dafür nötigen Codes selber einzubauen, z.B. die Codes 13 10 für eine TXT-Ausgabe, oder "<br>" für eine HTML-Ausgabe. Auch dafür gibt es einen Basisparameter:
ze="<br>"
Dieser Befehl würde immer dann die Zeichenfolge  <br>  ausgeben, wenn der Manipulationsbefehl  C  vorkommt.

Grundregel 9 ist vielleicht auch unerwartet:

  1. Indexierung ist auch Export! Die Index-Einträge, die aus einem Datensatz hervorgehen, werden ebenfalls mithilfe der Exportsprache erzeugt. 
Beispiel: Die Parameterdatei  CAT.API, die Sie wahrscheinlich verwenden, ist ein besonders großes und kompliziertes Exemplar einer Index-Parameterdatei. Ein viel einfacheres Beispiel ist die Prototyp-Datei  INDX.API, in der alle Elemente kommentiert sind. Man kann sie als Muster verwenden, wenn man eine neue Datenbankstruktur entwickelt. Denn dazu gehört es, daß man neue Indexparameter machen muß. Ebenso neue Anzeigeparameter! Leichter durchschau- und änderbar, weil moderner und besser strukturiert, ist auch BANK.NPI, die Parameterdatei für das Neutralformat N.CFG.
Typisch ist beim Indexieren, daß aus einem Datensatz eine Vielzahl von Indexeinträgen hervorgeht: Namen, Titelwörter, Titelanfänge, ... Jeder davon wird als ein eigener Ausgabesatz betrachtet! Besonders wichtig sind dafür die sog. ak-Befehle. Sie legen fest, aus welchen Datenfeldern Registereinträge zu machen sind. So ein Befehl sieht so aus:
ak=20" "+E
und das bedeutet: Nimm das Feld #20, zerlege es an jedem Leerzeichen (d.h. Zerlegung in Wörter!) und gehe mit jedem so entstehenden Wort zu der Sprungmarke #-E. Erst dort entsteht dann der Indexeintrag! Bei dieser Sprungmarke kommt das Wort in der Variablen #u1 an (das ist grundsätzlich so bei einem ak-Befehl), und bei der Sprungmarke könnte dann z.B. stehen:
#-E
!u1 p"|3"
#+#
Das bedeutet: Codiere das Wort (welches in dem Moment in der Variablen #u1 steckt) mithilfe der q-Befehle um und ordne das Ergebnis dann ins Register 3 ein. Wenn z.B.  in #u1 gerade das Wort "Größe" steht, weil es im Titel vorkommt, wird durch die Umcodierung daraus "groesse", und dies kommt ins Register. Für jedes einzelne Titelwort wird dieser Vorgang gemacht, genau das ist die Aufgabe des ak-Befehls.
Historische Anmerkung: ak-Befehle wurden zuerst für den Kartendruck erfunden. Dabei sollten zu einem Datensatz mehrere Karten mit unterschiedlichen Überschriften ("Köpfen") herauskommen, zum Einordnen an verschiedenen Stellen des Alphabets. Man brauchte also ein Mittel, um diejenigen Felder zu bestimmen, aus denen Kartenköpfe hervorgehen sollten: ak bedeutete dabei nichts anderes als "Aufnahme-Kopf". Stellt man sich die Indexparameter als Kartenüberschriften ohne Karten vor, wird die übertragene Bedeutung sofort klar.

Elemente ohne Wenn und Aber
"Hmm," fragen Sie jetzt: "Wenn aber  Verf. :  herauskommen soll, und zwar auch dann, wenn #40 nicht belegt ist? Kann man keine Textelemente zwischen den Feldtexten ausgeben, und zwar immer, auch wenn die Felder nicht belegt sind? Die Manipulationsbefehle, so wurde ja gesagt, wirken nur dann, wenn die damit manipulierten Felder auch belegt sind!"
Dafür gibt es den
Text-Ausgabebefehl  #t{ ... } , wobei zwischen { ... } eine Steuerzeichenkette stehen muß: die kann aus beliebigem Text bestehen einschließlich Steuerzeichen, normaler Text immer zwischen "..." oder '...'.
Hier ein Beispiel

#t{ C "Schlagwörter:" C 9 }
Damit wird erreicht, daß an der betreffenden Stelle zuerst eine neue Zeile begonnen wird, dann "Schlagwörter:" hingeschrieben und dann nochmals eine neue Zeile, dann der Code 9 (= TAB-Zeichen). Man muß solche Befehle natürlich an den richtigen Stellen einfügen zwischen die normalen Ausgabezeilen, also zwischen die Zeilen mit # und !, damit das Gewünschte an der richtigen Stelle herauskommt. Aber Vorsicht: Was in solchen Zeilen steht, das wird nicht umcodiert (anders als die Datenfelder), sondern unverändert so ausgegeben, wie es dasteht. Bei Umlauten und anderen Sonderzeichen muß man darauf achten und ggfls. den richtigen Editor nehmen, um die Parameterdatei zu bearbeiten.

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-


Jetzt haben Sie die Grundlagen schon verstanden! Damit wird es Ihnen nun nicht schwerfallen, den Anfangsteil des Kapitels 10 zu lesen. Denn es gibt noch eine Menge andere Befehle, die alle ihren Sinn haben. Das Exportwesen ist ein weites Feld, daher kann es nicht simpel sein. Dazu gehört nicht zuletzt auch die Indexierung, wie wir nun gesehen haben. Denn auch die Registereinträge sind ja Dinge, die aus den Datensätzen heraus durch irgendwelche Umformungen entstehen, und diese Umformungen sind es, die man mit der Exportsprache machen kann.
Exportparameter sind sehr kompakt und deshalb wenig intuitiv. Sie arbeiten dafür aber extrem schnell, und das ist besonders für das Indexieren sehr wichtig. Mit XML und XSLT z.B. wären solche Leistungen nicht annähernd erreichbar.

Beispiele zum Ausprobieren
Als erstes etwas größeres Beispiel empfehlen wir eine Datei 
d-simp.apr, die für eine einfache, katalogkartenähnliche Anzeige geeignet ist. Mit den Kenntnissen aus dieser Einführung und den darinstehenden Kommentaren werden Sie das meiste oder alles verstehen und dann sogar weiter ausbauen können! Sie können diese Parameter auf Ihre Platte kopieren und dann sogar sofort aktivieren, um zu sehen, was sie produzieren. (Um manuell zu aktivieren, im Schreibfeld eingeben: x disp p d-simp )
Als zweites Beispiel kommt die Protoyp-Datei für Bildschirmanzeige
D-0.APR in Frage. Auch diese kann man sofort ausprobieren.

Rezept:
Wenn man irgendeine Parameterdatei für die Anzeige ausprobieren will, dann im Menü „Ansicht“ mit dem Punkt „Anzeigeparameter wechseln“. Man wählt die gewünschte Datei dann aus der erscheinenden Liste aus, wobei man zwischen den Verzeichnissen auch umschalten kann: die Parameterdatei könnte im eigenen Datenverzeichnis, aber auch im Programmverzeichnis liegen!
Andere Methode: um die Datei xyz.apr auszuprobieren, dieses eingeben:
x disp p xyz. Und dann ausgewählte Sätze anzeigen lassen, damit man die Wirkung sieht. Aber nicht bei jeder .APR-Datei kommt in der Anzeige etwas Gescheites heraus! (Dieselbe Testmethode geht beim DOS-PRESTO mit F2 F2 und dann Auswahl der Datei: + davorsetzen und Enter.)

Export ausprobieren
Um nun wirklich Daten in eine Datei zu exportieren, müssen die Exportparameter nicht für die Anzeige, sondern für den Export geladen werden. Das geschieht über das Menü "Export / Andere Exportparameter" oder per FLEX. Hier das Muster, wie man einen Export per FLEX vorbereitet und durchführt: (die roten Namen ersetzt man durch die der eigenen Dateien)

xport p d-simp        // Exportparameter d-simp.apr laden
open x ausgabe.txt    // Ausgabe soll in die Datei  ausgabe.txt
dow set               // Ergebnismenge ausgeben
close x               // Datei wieder schließen


Für das vertiefende Studium

Im Handbuch, Kap. 10.4, werden 10 Prototypen von Exportparameterdateien erwähnt, alle kommentiert, für unterschiedliche Aufgaben.

Hinweis: Viele Anwender arbeiten nur mit den Komfortmethoden des Exportmenüs. Fast alle diese Methoden benutzen irgendwelche Parameterdateien, ohne daß der Anwender es wissen muß, denn FLEX kümmert sich darum, sie im rechten Moment einzusetzen!

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-


Noch drei drängende Fragen werden Ihnen jetzt auf der Zunge liegen:

Wo müssen sich die Parameterdateien befinden?
Antwort: Auf dem Datenverzeichnis (wo die Datenbank liegt) oder auf dem Programmverzeichnis (wo a99.exe und die anderen Programme liegen).
Schlaumeier fragen sofort: Wenn es aber zwei verschiedene gibt mit demselben Namen, die eine hier und die andere dort? Dann wird immer die genommen, die auf dem Datenverzeichnis liegt. Vorteil: Parameter, die für mehrere Datenbanken gelten, brauchen nur einmal zu existieren, aber es kann immer noch für die eine oder andere Datenbank eine geänderte Version geben, und die muß dann auch bei der betr. Datenbank liegen - ist das nicht logisch?
Empfehlung: Wenn Sie eine der mitgelieferten Parameterdateien für Ihre Zwecke verändern (z.B. die D-WRTF.APR), dann kopieren Sie die veränderte auf Ihr Datenverzeichnis. So kann es bei einem Update nicht passieren, daß Ihre Privatversion wieder durch eine neue Standardversion überschrieben wird.  

Wie kann man sie bearbeiten?
Da es sich um ASCII-Dateien handelt, eignet sich Word nicht dafür. Am besten ist der mitgelieferte Texteditor X.EXE. Der ist sehr leicht zu benutzen, keinen anderen kann man schneller lernen, die wichtigsten Handgriffe lernt man in
zwei Minuten! Er läuft unter allen Windows-Versionen, ist allerdings ein DOS-Programm, und wer gegen so etwas eine Aversion hat, kann WinVi nehmen, ein sehr gutes Freeware-Programm. Eine Alternative zu X ist auch der Microsoft-Editor edit.
Alternative im Windows-System: Man bearbeitet direkt im Anzeigefenster von a99! Geben Sie z.B. ein:  h i-1.apr . Dann sehen Sie die Datei i-1.apr
, können sie bearbeiten und mit Alt+s  wieder speichern. Anderes Beispiel:  h d-w0.apr , die oben erwähnte einfache Anzeigeparameterdatei. Ändern, speichern (am besten unter anderem Namen), ausprobieren über Menü "Ansicht / Anzeigeparameter wechseln".

... und wie müssen sie heißen?
Die Namen darf man sich aussuchen, die Namenserweiterung (Dateityp) jedoch nicht. Sehr wichtig:
Kurze Namen: höchstens 8 Zeichen, nur Kleinbuchstaben, keine Leerzeichen, Umlaute oder andere Sonderzeichen
(Längere Namen funktionieren nur mit den Windows-Programmen.)
Der (verpflichtende) Dateityp (Namenserweiterung) ergibt sich aus zwei Dingen:

  1. Die verwendete Konfigurationsdatei. Normalerweise ist das $A.CFG oder A.CFG. Der erste Buchstabe des Typs muß dann A sein. Wenn die Datenbank mit einer  N.CFG  arbeitet, muß es N  sein, usw.

  2. Der Zweck der Parameter. Da gibt es drei Möglichkeiten:

PR Echter Export. Der Typ ist dann also  .APR

Beispiele: 
D-1.APR    :
Die Standard-Anzeigeparameter für das DOS-Programm PRESTO
I-1.APR    :
Damit kann man Daten im internen Format ausgeben lassen. Es entsteht eine sog. Grunddatei mit den richtigen Steuerzeichen. Man kann sie anschließend in eine andere Datenbank einspeisen (mit update.exe (s. Kap.9) oder index.exe (s. Kap.7))
D-WRTF.APR :
Die Standard-Anzeigeparameter für das Windows-Programm a99

PT Nachlade-Tabelle, d.h. eine Datei, die mit t-Befehl in andere Parameter eingebunden wird. Der Typ ist dann .APT

Beispiele: 
I.APT      :
Tabelle für die Umcodierung von Zeichen für das Indexieren (Einbindung in CAT.API)
SWL1.APT   :
Tabelle mit Stoppwörtern für das Indexieren (Einbindung in CAT.API)
D.APT      : Tabelle für die Umcodierung DOS -> Windows (Einbindung z.B. in D-WRTF.APR)

PI Index-Parameter, d.h. die Vorschriften zur Bildung der Registereinträge. Der Typ dafür ist .API

Beispiel:
CAT.API    :
Indexparameter für die Register des Standardsystems
Tip: Geben Sie F7 (in PRESTO oder a99), dann sehen Sie, was cat.api macht: Diese Parameter werden dann ausgeführt und man sieht als Ergebnis die Registereinträge, die zum aktuellen Datensatz gehören.

Achtung: Die Dateinamen sind hier mit Großbuchstaben geschrieben. Bei DOS und Windows ist das egal!  Bei Unix und Linux ist es nicht egal. Da ist es zwingend notwendig, sämtliche Namen, die mit allegro zu tun haben, immer und in jeder Situation vollständig klein zu schreiben. Nur so vermeidet man zeitraubenden Ärger mit nicht gefundenen Dateien... Vorsicht: Wenn man Dateien mit FTP oder Samba zwischen Win, Linux, Novell oder UNIX kopiert oder in Archivdateien packt, kann es passieren, daß die Namen mit Großbuchstaben ankommen oder abgeschnitten werden; dann muß man sie erst wieder korrekt umbenennen.
Der eigentliche Name, der Teil vor dem Punkt also, ist frei. Es wird empfohlen, sich dafür an ein paar Konventionen zu halten, die im Handbuch, Kap. 10.0
beschrieben sind. Damit behält man leichter den Überblick. Wir achten darauf, alle Standarddateien in Kleinbuchstaben auszuliefern sowie nur Namen mit maximal 8 Zeichen zu verwenden.



[i] zuletzt aktualisiert:
Email: ub@tu-bs.de