[Allegro] Erweitertes osdp ist da

Bernhard Eversberg ev at biblio.tu-bs.de
Di Feb 14 09:03:59 CET 2012


Im SVN liegt die aktuelle, erweiterte Fassung:
   https://svn.allegro-c.de/svn/osdp/

Und hier das unter Windows ausführbare Programm:
   http://ftp.allegro-c.de/aktuelle-version/osdp.zip
Dies jedoch nur zum Ausprobieren, mit drin ist eine Datei  aktion.dat,
die man so in Aktion setzt:
   osdp <aktion.dat
auf c:\allegro, wenn DemoBank standardmäßig in demo2 liegt.

Darum geht's aber nicht, sondern natürlich um's Quellprogramm, denn
dieses soll als Lernobjekt dienen und als Startbasis für eigene
Versuche, um den Einstieg zu erleichtern.
Es folgt, weil da alles weitere drinsteht, die README-Datei, die
im Anhang auch die Datei  aktion.dat  zeigt.


   osdp : Beispielprogramm für den Umgang mit der Klassenbibliothek
   2012-02-13   Ausbaufaehig, entsprechend kommentiert (Zeilen mit ++++)
                Kompilierbar unter Windows, Linux, Solaris

   osdp ist
   ein Konsolprogramm, das auf eine allegro-Datenbank zugreifen
   und Aktionen damit und darin ausführen kann, und zwar:
       Sätze finden und laden, verändern, speichern, exportieren.

   osdp soll:
   1. Den Umgang mit der Klassenbibliothek an übersichtlichen
      Beispielen zeigen

   2. Einen Rahmen bieten, in den man eigene Funktionen einbauen kann
      Dieser Rahmen umfaßt folgende Teile:
      -- Lesen von Einstellungen aus einer Steuerdatei
      -- Auswertung von Aufrufoptionen (Vorrang vor Steuerdatei)
      -- Öffnen einer Datenbank
      -- optional Laden von Exportparametern
      -- Lesen, Erkennen, Ausführen von Befehlen aus der Steuerdatei

   osdp kann
   nichts, was acon nicht auch könnte! Es ist nur viel kleiner
   und übersichtlicher, somit für den Einstieg und als Startpunkt für
   eigene, nicht so komplexe Aufgaben besser geeignet als acon.
   Typische Aufgaben sind solche, bei denen man bestimmte Datenelemente
   in bestimmte Sätze einspeisen will oder sonstige Veränderungen an
   den Sätzen vornehmen (globale und lokale Ersetzungen).

   osdp kann nicht
   Spruenge und Unterprogramme ausfuehren. Die Befehle werden streng
   linear abgearbeitet; es wird eine Zeile nach der andern gelesen und
   sofort ausgefuehrt. (acon liest erst den ganzen Job ein, bevor es
   beginnt! Das geht nicht anders wegen der Sprünge und Unterprog.)

   osdp benötigt
   eine Steuerdatei, diese ist zu übergeben an die
   Standardeingabe mit
       osdp <dateiname
   Die Datei wird nicht, wie bei acon, zuerst als Ganzes eingelesen,
   sondern von Anfang bis Ende, Zeile für Zeile gelesen und sofort
   ausgeführt. Die Angaben zur Datenbank müssen deshalb am Anfang
   de Datei stehen.

   Eine Steuerdatei besteht aus zwei Abschnitten mit den
   Überschriften
OPTIONS    Einstellungen wie Ort und Name der Datenbank
COMMANDS   Befehle zum Finden, Laden, Verändern, Speichern, Exportieren

   Die Zeile OPTIONS kann fehlen, dann sind alle Optionen im Aufruf
   anzugeben. Ohne den Abschnitt COMMANDS wäre eine Steuerdatei sinnlos.

   Zeilen, die mit Spatium beginnen, sind wirkungslos (= Kommentar)
   Codierung ist Windows-ANSI (wird dann in den internen Code gewandelt)
   Der Dateityp (extension) ist nicht festgelegt. Empf.: .dat

   Start:  osdp -aufrufoptionen <dateiname
   Die per -x.. nicht gesetzten Werte können am Anfang der Datei stehen:
   (Die im Aufruf gegebenen Optionen haben Vorrang)
   Beispiel:
     osdp -kn -df:\daten\katalog -bbank <aktion.dat

   Im Normalfall wird man wohl alles in die Steuerdatei schreiben und
   dann mit   osdp <aktion.dat   starten

   Mögliche Optionen sind:
   -d Datenpfad      z.B. -d c:\allegro\demo2
   -b DbName              -b cat
   -r Registernr          -r 9    (f.d. find-Befehl)
   -k Konfig              -k a
   -e ExportParam         -e e-w
   -E Ausgabedatei        -E output.adt

   Es folgt ein Beispiel für eine Steuerdatei (Codierung: ANSI Windows)
   Es kommen alle Befehle vor, die möglich sind.

   ---------------- aktion.dat ---------------------------------------

OPTIONS
-b cat
-k a
-d c:\allegro\demo2
   Die folgenden können zur Laufzeit geändert werden, indem man
   die Werte jeweils in gleicher Weise unter COMMANDS neu angibt
-e e-w
-E output.adt
   Register der Prim.Schl.
-r 9
   Zwischen -x  und Wert können Spatien stehen.
   Unter dem Wort COMMANDS fängt der funktionale Bereich an

COMMANDS
   Satz finden (im Reg. 9 - s. Option -r), aendern, speichern
find 8d0294
   ein bestimmtes Feld einfuegen (vorhandenes ersetzen)
#98 Gehört zu Shakespeares berühmtesten Stücken
   Ein Feld #31 hinzufuegen (vorhandenes bleibt bestehen)
#31~Tragödie
   ein Feld loeschen (ohne Inhalt angeben)
#89x
   globale Ersetzung im Satz
_Othello_Otello_
   lokale Ersetzung in einem Feld (statt _ auch , möglich)
*#74_u.a.__
   Ausgabe per Parameter
export
   Satz speichern
put
   Indexeinträge des Satzes ausgeben
keys
   1 Sekunde warten
sleep 1

   Naechster Satz: vorhandenen aendern und als neuen speichern
   (dabei muss man  #00  geeignet setzen)
find 813139
#00 a?5
#76 2012
#71 3. Aufl.

export
   Speichern, aber als neuen Satz
put new

   Neuen Satz komplett vorgeben
new
#40 Rietzschel, Thomas
#20 ¬Die¬ Stunde der Dilettanten : Wie wir uns verschaukeln lassen
#39 von Thomas Rietzschel
#74 Wien
#75 Zsolnay
#76 2012
#77 256 S.
#87 3-552-05554-1
#90 ABC-123
put
export

   -------------------------------------------------------------------

Nach Ablauf in a99 die Daten betrachten!
Die Sätze sind außerdem in  output.adt  protokolliert.





Mehr Informationen über die Mailingliste Allegro