Vb.62: QUEX erleichtert Export

Bernhard Eversberg EV at buch.biblio.etc.tu-bs.de
Do Mär 21 10:17:52 CET 1996


Verlautbarung 62 der Entwicklungsabteilung
----------------

QUEX : QUick and Easy eXport
----------------------------

In Verlautbarung 61 hatte es geheissen:

> Wer sich angestachelt fuehlt, die Methodik zu erweitern oder aehnlich
> allgemeingueltige Parametrierungen zu erstellen, sei dazu ausdruecklich
> ermuntert!

Um der Phantasie noch weiter auf die Spruenge zu helfen, haben wir
gleich noch eine simplifizierte Exportmethodik entwickelt, und auch 
diese kommt ohne Eingriff in Parameterdateien aus. 

Die Aussage:
> "Im Prinzip geht das mit 'allegro', man muesste NUR ein paar Parameter-
> dateien schreiben..."

wird in Zukunft seltener zu hoeren sein, wenn die QUEX-Methode um sich
greift und weiter verfeinert wird. Fuer schnelle ad-hoc Listen ohne
grosse Finessen wird man nicht mehr parametrieren muessen! 

Was soll QUEX leisten?

 o  Erstellung einfacher sortierter Exportdateien ohne jede Parametrierung,
    wobei besonders die Eignung der Datei fuer die Uebernahme durch
    andere Software im Vordergrund steht. (Wenn man etwa Daten an eine
    moderne Textsoftware uebergibt, hat man enorme Moeglichkeiten der
    Umstrukturierung mittels Makros, daher muss nicht immer schon
    eine diffizile Struktur durch "allegro" geliefert werden.)

 o  Vorgabe einer beliebigen Kategorie fuer die Sortierung, auch mehrere
    Alternativen, falls die Kategorie nicht besetzt ist.

 o  Fuer den Export vorgebbar sollen sein:
    - Zeilenlaenge (oder 0 fuer fortlaufend)
    - Zeichen(kombinationen) fuer Satzanfang, Feldtrennung, Satzende
    - Zeichenumcodierung fuer die Ausgabe

 o  Hohe Geschwindigkeit, geringer Platzbedarf, damit das Verfahren auch
    fuer grosse Eportmengen attraktiv ist.

 o  Ausserdem soll die Methode weitestgehend unabhaengig vom Kategoriesystem
    sein, d.h. die Parameterdateien sollen fuer jede CFG funktionieren.

Zum Einsatz kommen, wie bei der COFI/COSU-Auswertungsmethodik: 

 -- die Option -U : damit kann man beim Programmaufruf (presto oder srch)
    Inhalte fuer Nutzervariablen vorgeben. Ein solcher Inhalt kann z.B.
    eine Liste von Kategorienummern sein! 

 -- der Manipulationsbefehl w : damit kann man einen Arbeitstext als
    Kategorienummer interpretieren lassen, und die betreffende Kategorie
    wird automatisch zum Arbeitstext gemacht, den man wiederum in eine
    #u-Variable kopieren kann,

 -- ak-Befehle mit #u-Variablen statt echten Kategorien.


****  Fuer den eiligen Leser  *****************************************

Wer sich mit der Theorie nicht lange aufhalten will, braucht nur dieses
zu wissen: (und kann sofort mit Versuchen anfangen)

Es gibt drei Dateien:

QUEX.BAT      steuert den gesamten Ablauf, zu starten vom CockPit
              Es stellt ein paar plausible Fragen und richtet einige
              Environment-Variablen ein.

S-QUEX.APR    macht im ersten Durchlauf (per presto oder srch) die
              Aufbereitung einer sortierfaehigen Datei qx.clg
              S-QUEX.APR muss man kopieren, z.B. auf S-QUEX.PPR, wenn man
              mit P.CFG arbeitet.

P-QUEX.APR    Nach dem Sortieren mit ASORT wird hiermit die Liste
              erstellt. Auch hiervon muss man eine Kopie machen,
              z.B. P-QUEX.PPR, wenn man mit P.CFG arbeitet.
              (Doppeleintraege werden eliminiert!)

Zwecks Anwendung baut man sich folgende Zeile bei den "Eigenen Routinen"
in die .OPT-Datei ein:

R QUick & Easy eXport, QUEX.BAT, Einfache- Listen und Dateiausgabe

QUEX.BAT kann man auch von Hand starten, dann teilt es mit, dass die
Environment-Variablen -K1 besetzt sein muss. Wenn man 
set -K1=P
gibt, wird also QUEX mit P.CFG arbeiten.

Heraus kommt eine Datei LISTE, in der die ausgewaehlten Saetze alpha-
betisch stehen, in der gewuenschten Anordnung.

****  Ende fuer eilige Leser  *****************************************

Wer es genauer wissen will, kann hier weiterlesen:

Der Ablauf, gesteuert von QUEX.BAT, sieht so aus:
Zuerst sind verschiedene Fragen zu beantworten:

1. "Nach welcher Kategorie soll sortiert werden?"
   (Geben Sie eine oder mehrere Kategorien an, getrennt durch Kommas:  
   z.B.    40,60,20
   (genommen wird dann zum Sortieren die erste, die vorkommt!)
   Zur Frage von Teilfeldern siehe unten.
   
2. Wenn keine Sortierkategorie vorkommt, was dann?
     0 : Satz nicht ausgeben
     a : Satz am Anfang der Liste plazieren
     e : Satz an das Ende der Liste setzen

    Die Antwort wird in eine Variable C2 umgesetzt.
    Zur Sortieraufbereitung wird auf S.APT zurueckgegriffen, d.h.
    fuer P.CFG sollte z.B. S.PPT existieren.

3. "Welche Kategorien sollen ausgegeben werden?"
   (Geben Sie eine oder mehrere Kategorien an, getrennt durch Kommas:
     z.B.    20,74,75,76,77,90
   
   Es kann leider nicht eine Gruppe von Kategorien hier mit einer
   einzigen Angabe wie #40. oder so zusammengefasst werden.
   Teilfelder koennen aber vorgegeben werden:  100$a,260$c  usw.
   Daraus wird zunaechst  %C9%  gemacht und spaeter verwendet (s.11.)
   Zur Frage von Teilfeldern siehe unten.


4. Aufbereitung ?
     1 = nach Art von dBase (comma-delimited)
     9 = nach eigenen Vorgaben
   Wenn man mit 1 antwortet, wird die Datei quexdb.apt auf export.apt
   kopiert und es geht bei 9 weiter.
   Wenn man hier 9 eingibt, muss man einige Fragen beantworten:
   (An dieser Stelle kann man Erweiterungen mit eigenen quexXY.apt-Dateien
   anbringen, um bestimmte Aufbereitungen vorzuprogrammieren und diese hier
   zur Auswahl anzubieten)

5. "Zeilenlaenge? (0 = ohne Umbruch)"
   Eine Zahl bis 130 bewirkt, dass ein Zeilenumbruch gemacht wird.
   (Hierdurch wird letztlich der Parameter zl gesetzt)

6. "Satz-Anfangszeichen? (in "..." , oder C = Neue Zeile)"
   Am Anfang eines Satzes braucht man in der Regel kein Steuerzeichen,
   jedoch kann man hier etwas einsetzen.

7. "Feld-Trennzeichen? (in "..." , oder C = Neue Zeile) "
   Auch hier ist jede Zeichenkombination moeglich, die man in
   Zwischenteilen einsetzen koennte.

8. "Satz-Endzeichen? (in "..." , oder C = Neue Zeile)"
   Und am Ende des Satzes koennte ebenfalls eine beliebige Kombination
   verlangt werden.
   Das Normale ist, hier C einzugeben (nicht "C"), um eine neue
   Zeile Am Ende des Satzes zu erzeugen, oder C C, wenn es zwei
   sein sollen. Jedoch ist auch jede andere Kombination moeglich,
   etwa  " ENDE" C , um das Wort " ENDE" an den Schluss jedes
   Ausgabesatzes zu setzen, und dann einen Zeilenvorschub.

Die Antworten auf 5. bis 8. werden in eine Datei export.apt geschrieben,
diese wird per  "texport"  in P-QUEX.APR eingebunden. Die Antwort auf Frage
2. wird dagegen als -Uc9%C9% an das Programm srch uebergeben. So kommt
man auch bei der Dateiausgabe ohne Eingriff in die Parameterdatei aus.

Jetzt kommt eine Kontroll-Anzeige, wo man nochmal sieht, was jetzt als
Vorgabe benutzt wird. Wenn irgendwas nicht stimmt, antwortet man mit n,
und es geht nochmal bei 1. los.
Wenn man aber 'j' sagt:

9. "Wie soll die Auswertung erfolgen?"
       1 : mit Volltextsuche  
       2 : als Ergebnismenge (Export mit F4)
   Bei 1 wird srch aufgerufen, dann muss man einen Volltext-Suchbegeiff
   eingeben, bei 2 wird presto aufgerufen, dann muss man eine Ergebnismenge
   bilden und sie per F4 exportieren.
   Beim Aufruf wird   -Uc1%C1% -Uc2%C2%  mitgegeben, 
   d.h. es entstehen die Uservariablen #uc1 und #uc2, diese werden 
   in S-QUEX.APR verwertet.

10.Es entsteht die Datei QX.cLG, mit  ASORT  wird sie sortiert. 
   Das Ergebnis ist dann QUEX.ALG

11.SRCH verarbeitet QUEX.ALG zu der Ergebnisdatei  LISTE.
   Dabei wird mit  -Uc9%C9%  die Liste der auszugebenden Kategorien dem
   Programm uebergeben.
   Zur Aufbereitung wird export.apt herangezogen, das oben unter
   Punkt 4 bis 8 erzeugt wurde. (Wenn man bei 4. mit 1 geantwortet
   hat, ist export.apt eine Kopie von quexdb.apt).
   SRCH muss in diesem Durchlauf nachladen koennen, daher darf Option -b
   nicht fehlen.
   Zur Umcodierung der Ausgabe wird PRINTER.APT herangezogen, d.h.
   man sollte vorher per CockPit oder von Hand die geeignete Drucker-
   treiberdatei auf printer.apt kopieren, bzw. printer.ppt etc.

Das Verfahren ist bei groesseren Datenmengen besonders effizient, weil
die Sortierdatei relativ klein ist, denn die Datensaetze selbst werden
erst im letzten Schritt nachgeladen.


Schematischer Ablauf von QUEX.BAT:

   Abfragen    Export mit             asort             Export mit
   vom        --------------> QX.ALG -----> QUEX.ALG --------------> LISTE
   Benutzer    S-QUEX.APR                               P-QUEX.APR  
               (srch/presto)                            (srch)

Anstelle von P-QUEX.APR kann man selbstverstaendlich eigene Parameter einsetzen,
die eine komplexere Ausgabe leisten. Es muss nur vor den Beginn der Ausgabe
(der Kategorieliste) dieses eingebaut werden:

#u2 e";" |01        Arbeitstext als Satznummer nehmen, Satz einlesen

Hiermit wird die in #u2 stehende Satznummer (produziert von S-QUEX.APR) 
genommen und der zugehoerige Satz geladen und zum aktuellen Satz gemacht.
Der Rest laeuft wie sonst auch.


Mehr Komfort fuer Teilfelder
----------------------------

Damit man auch Teilfelder bequem extrahieren kann, wurde der Manipulations-
befehl w etwas erweitert:

Wenn man z.B. dieses hat:

#dt p"260$c" e5 w 

wird der Arbeitstext als Kategorienummer interpretiert, also #260, und
das Teilfeld c wird automatisch neuer Arbeitstext. (Das '$' ist hier
wirklich das Zeichen '$', nicht als Stellvertreter fuer Code 31).

Bisher war nur

#dt p"260" e3 w

moeglich, damit wurde aber die gesamte Kategorie zum Arbeitstext.
Man konnte zwar dann

#dt p"260" e3 w *c     (wobei * fuer das Dreieck steht)

machen, aber genau das geht nicht mit der neuen Exportmethode: dabei kann
man die Kategorienummer per -U uebergeben und auswerten, aber nicht die 
Teilfeldkennung. Mit der neuen Erweiterung geht dieses jetzt.

Nochmal ganz knapp: Man kann diesen Aufruf machen:

srch .... -Uca260$c                      ... dann entsteht #uca260$c

und dann in der Parameterdatei schreiben:

#uca w

und hat als Arbeitstext das Teilfeld c der Kategorie #260. (Auch dann,
wenn man per CFG ein anderes Zeichen als Teilfeldzeichen deklariert hat.)

Wenn man diese neuen Programme hat, vereinfacht sich auch die
Auswertmethodik vom Typ C: Die Datei COSU.BAT wird ueberfluessig.
                           -------------------------------------
Man benutzt nur COFI und gibt als Kategorienummer so etwas wie 260$c
oder 100$a ein - das klappt dann anstandslos.

Die Dateien presto.lzh und srch.lzh mit dieser Erweiterung liegen
bereit. Wer QUEX anwenden und dabei mit Teilfeldern arbeiten will,
muss sich diese Versionen beschaffen. Die anderen Programme werden
ebenfalls in Kuerze diese Erweiterung bekommen, auch die X-Programme.

Das QUEX-Paket liegt auf PARAM und heisst QUEX.LZH. 

MfG  B.E.




Mehr Informationen über die Mailingliste Allegro