Bilder in alllegro und allegro in Archiven

Dierk Hoeppner HO at buch.biblio.etc.tu-bs.de
Fr Jul 21 09:09:28 CEST 1995


Lieber Herr Kamke,

> 1.) gibt es eigentlich eine Moeglichkeit, in Allegro Bilder zu verwalten?
>     Gemeint ist jedoch nicht der einfache Hinweise auf irgendwelche 
Bilder
>     sondern die Moeglichkeit z.B. eingescannte Titelseiten der 
entsprechenden
>     Aufnahme zuzuordnen.

Es gibt eine Spezialversion von PRESTO und APAC, die die Moeglichkeit 
bieten, Grafiken, die man einer Aufnahme zugeordnet hat, auf Knopfdruck 
anzeigen zu lassen. Dabei werden die Grafiken nicht in der Datenbank 
gespeichert, denn allegro ist eine Textdatenbank, sondern in eigenen 
Dateien auf der Platte. Per Parametrierung konstruiert man einen 
Programmaufruf fuer ein Grafikanzeigeprogramm, das dann von PRESTOG 
gestartet wird. Nach Verlassen des Bildes landet man automatisch wieder in 
der Titelanzeige. Die Programme koennen Sie bei uns fuer 250,- abonnieren. 
Die ausfuehrliche Beschreibung finden Sie unten.

Zu 2. kann ich nichts konkretes anmerken.

Viele Gruesse

Dierk Hoeppner

--------------------- README Grafik mit allegro --------------------------

       +------------------------------------------------------------+
       | Verwaltung elektronisch gespeicherter Grafiken mit allegro |
       +------------------------------------------------------------+


   Es ist immer wieder der Wunsch an die allegro-Entwicklungsmannschaft
   herangetragen worden, ein Moeglichkeit zu schaffen, mit allegro Grafiken
   zu verwalten. Hauptwunsch war dabei immer, zu einer Titelaufnahme eine
   Grafik zu speichern und anzeigen zu lassen. Es sind viele Anwendungen
   dieser Art denkbar:

         Man koennte beispielsweise statt einer vollstaendigen
          retrospektiver Erfassung der Altbestaende zunaechst einmal alle
          Karteikarten scannen und als Grafikdateien ablegen. In der
          Datenbank wuerde man eine Referenz auf die Grafikdatei und einige
          wichtige recherchierbare Begriffe, wie Verfasser und Titel o.ae.,
          ablegen. Der Benutzer koennte dann auf Knopfdruck sich die
          vollstaendige Aufnahme anzeigen lassen.

         Man koennte Bilder- oder Fotosammlungen mit allegro verwalten und
          dem Benutzer zugaenglich machen, ohne dass dieser immer gleich die
          Originale in die Hand bekommt. Bei wertvollen Sammlungen ist dies
          kein unwichtiger Aspekt.

         Wer eine Datenbank fuer Musikalien oder Handschriften aufbaut,
          moechte vielleicht Bilder der Noten oder Schriften zeigen.

   Es gibt sicherlich noch viel mehr Anwendungsfaelle, in denen man Grafiken
   verwenden moechte. Mit allegro ging das bisher nicht. Aber jetzt ist es
   moeglich, denn es wurde eine sehr flexible Moeglichkeit gefunden, aus
   einer allegro-Datenbank heraus Grafiken anzuzeigen. Mit diesen neuen
   Faehigkeiten lassen sich aber nicht nur Grafiken verwalten, sondern auch
   digital gespeicherte Musikstuecke, Filme und anderes!


Funktionsweise der neuen Moeglichkeiten
--------------------------------------

   allegro kann von Haus aus nicht Grafikdateien in Kategorien speichern,
   denn es ist eine textorientierte Datenbank, und Grafikdateien sind
   binaere Dateien. In solchen binaeren Dateien koennen zufaellig
   Zeichenkombinationen auftreten, von denen allegro annimmt, es seien fuer
   die Datenbank wichtige Steuerzeichen. Ein gesichertes Erkennen des
   Datensatz- oder Kategorieendes waere so nicht gewaehrleistet. Man muesste
   sich eine voellig neue Struktur der Datenbanken ueberlegen. Die waere aber
   ueberhaupt nicht mit den bisherigen Strukturen in Einklang zu bringen. Es
   wuerde zu ungewuenschten Inkonsistenzen im Datenformat kommen.

   Ein anderer Punkt ist, dass es fuer die unterschiedlichsten Anwendungen
   die unterschiedlichsten Formate gibt, Grafiken zu speichern.
   Pixelgrafiken sind etwas voellig anderes als Vektorgrafiken. Im Bereich
   der Pixelgrafiken gibt es allein ca. 100 verschiedene Formate. Die
   Vielfalt der Formate wird auch auf absehbare Zeit bleiben. Man benoetigt
   sie auch, denn unterschiedliche Anwendungsfaelle erfordern
   unterschiedliche Formate. Niemand kann eine Empfehlung geben, welches
   das fuer alle Anwendungsfaelle am besten geeignete Format ist, denn das
   gibt es schlichtweg nicht.

   Wir haben uns daher entschlossen, die eben skizzierten Probleme zu
   umgehen: Die Grafikdateien, oder was man sonst so mit einer
   allegro-Datenbank verwalten moechte, werden separat in ihrem eigenen
   Format und in eigenen Dateien gespeichert. Wie der Anwender die
   physikalische Ablage dieser Dateien organisiert, bleibt ihm ueberlassen.
   In der Datenbank legt man in einem Titelsatz oder in einem eigenen
   Stammsatz eine Referenz auf diese Dateien ab. In welcher Form man das
   macht, ist auch beliebig. Die einfachste Moeglichkeit ist, man gibt den
   Namen einer Grafikdatei an. Man muss dann noch in einer Parameterdatei,
   die Parameterdatei fuer die Bildschirmanzeige eignet sich dafuer am
   besten, einen Abschnitt parametrieren, der als Ergebnis einen korrekten
   Aufruf eines Grafikanzeigeprogramms hat. Dieses Programm sorgt dann fuer
   die Anzeige der Grafik. Welcher Abschnitt dafuer vorgesehen ist, wird
   PRESTOG oder APACG mit einem neuen Konfigurationsbefehl mitgeteilt.

   Fuer den Programmbenutzer stellt sich das Verfahren dann so dar: In einer
   Titelanzeige bekommt er den Hinweis, dass zu diesem Eintrag eine oder
   mehrere Grafiken vorhanden sind. Er drueckt dann die Tastenkombination
   <Alt+G> und bekommt vom Grafikprogramm die entsprechende Grafik
   angezeigt. Nach Druecken einer Taste, die von Grafikprogramm zu
   Grafikrogramm unterschiedlich sein kann, landet man wieder in dem
   Titelsatz, von wo man ausgegangen war. Danach kann man mit PRESTOG bzw.
   APACG ganz normal weiterarbeiten.

   Man erkennt vielleicht, dass dieses Verfahren sich auch fuer das Abspielen
   von digital gespeicherten Musikstuecken oder Filmen eignet. Voraussetzung
   ist eine entsprechende technische Ausstattung des PCs, und die Programme
   muessen unter DOS laufen. Der Zugriff auf CD-ROM-Daten waere so auch
   moeglich. Es koennen aber auch viel kompliziertere Prozesse programmiert
   werden. Man ist da keinen Beschraenkungen unterworfen. Sie muessen nur
   darauf achten, dass fuer den Datenbankbenutzer nicht der inhaltliche
   Zusammenhang zwischen dem, was in der Titelanzeige steht, und dem, was
   nach dem Start des Subprozesses passiert, verloren geht. Sonst traegt
   dieses Verfahren nicht zur Erkenntnis des Benutzers bei, sondern eher zu
   seiner geistigen Verwirrung.


Einschraenkungen des Verfahrens
------------------------------

   Wenn das externe Programm aufgerufen wird, verlaesst PRESTOG den Speicher.
   Ein kleiner Rest von ca. 300 Byte bleiben aus technischen Gruenden uebrig.
   Es stehen fuer externe Programm jetzt XX - 300 Bytes Arbeitsspeicher zur
   Verfuegung. XX ist dabei die Groesse des Arbeitsspeichers VOR dem Start von
   PRESTOG. Dieser verbleibende Speicherplatz muss fuer das externe Programm
   zum Arbeiten genuegen. Je mehr Speicherplatz PRESTO bei seinem Start
   hatte, desto mehr bleibt auch fuer das Anzeigeprogramm uebrig.

   Da die Grafikdateien ausserhalb der Datenbank gespeichert sind, muss man
   selbst fuer eine korrekte Verwaltung dieser Daten sorgen. Schlamperei in
   diesem Bereich kann zu unerwuenschten Fehlern fuehren.


Voraussetzungen fuer den Einsatz des Verfahrens
----------------------------------------------

   Diese Verfahren funktionieren nur mit den Programmen PRESTOG und APACG.
   Vom Kernprogramm her verfuegen sie ueber die Faehigkeiten der Version 14.
   Man kann sie also als Ersatz fuer PRESTO und APAC nehmen. Ein Umbenennen
   der Programme ist selbstverstaendlich moeglich. Wenn man also PRESTOG.EXE
   in PRESTO.EXE umbenennt, verliert man zwar das "normale" PRESTO, aber
   beim Benutzen einer Datenbank ueber das CockPit, bekommt man im
   Schnellzugriff die Grafikfaehigkeiten mitgeliefert.

   Dann benoetigt man ein Anzeigeprogramm fuer die Grafiken. Der
   Beispieldistribution haben wir PIXVIEW von Klaus Holtorf beigelegt, weil
   es die meisten Pixelgrafikformate automatisch erkennt, anzeigen und
   ineinander umwandeln kann. Es liegt in der Sharewareversion vor. Wenn
   Sie es im harten Einsatz betreiben wollen, sollten Sie es erwerben.
   Genaueres dazu finden Sie in der Datei PIXVIEW.DOC. Es gibt aber noch
   andere, genauso geeignete Programme. Man findet massenhaft Programme in
   jeder Mailbox oder auf jedem FTP-Server.

   In der Konfigurationsdatei muss der neue Befehl bG auftauchen. Allgemein
   hat er dieses Format:

     bGsL[swapdir]

     -    bG ist der Befehl. Er wird nur von den neuen Programmen erkannt.
          Die alten ignorieren ihn.

     -    s ist die Nummer der Parameterdatei, in der der Abschnit fuer die
          Erzeugung des Programmaufrufs parametriert wird. Erlaubt ist hier
          nur 0 (Null) fuer die Indexparameterdatei und 1 (Eins) fuer die
          Bildschirmanzeigeparameterdatei. Wir empfehlen die 1, weil man
          waehrend der Testphase die Moeglichkeit hat, sich das Ergebnis der
          Parametrierei anzusehen.

     -    L ist die Sprungmarke, die den erwaehnten Abschnitt markiert. Fuer
          diese Sprungmarke benoetigen Sie keinen ak-Befehl in der
          Parameterdatei, da sie nur intern vom Programm angesprungen wird.

     -    [swapdir] ist eine Angabe, die entfallen kann (deshalb die []).
          Diese Angabe muss ein gueltiges Verzeichnis sein, in das das
          Programm sich bei Bedarf auslagern kann. Es koennen mehrere
          Verzeichnisse, durch Semikolon voneinander getrennt, angegeben
          werden. Wenn hier etwas steht, lagert das Programm sich NUR auf
          Platte aus und nicht in den erweiterten Arbeitsspeicher (XMS oder
          EMS). Diese Option kann man benutzen, wenn das aufzurufende
          Grafikprogramm nur laeuft, wenn der EMS oder XMS frei ist.

    Zweite Voraussetzung: Sie benoetigen eine Kategorie, in der Sie die
    Information speichern, mit deren Hilfe Sie die externe Datei
    ansprechen koennen. Im Standardschema ist dafuer jetzt die #94
    vorgesehen, die bisher noch von niemanden benutzt werden duerfte.
    Diese Kategorie gab es bisher nicht, weshalb Sie sie in der
    Kategorieliste noch einfuegen muessen.


Parametrierung des Grafikprogrammaufrufs
----------------------------------------

   Wenn der Benutzer in der Titelanzeige <Alt+G> drueckt, arbeitet das
   Programm zunaechst den Abschnitt L in der Parameterdatei s ab. Zu diesem
   Zeitpunkt steht Ihnen fuer die Parametrierungszwecke der Datensatz zur
   Verfuegung, aus dem die Titelanzeige parametriert wurde. Sie muessen jetzt
   aus den im Datensatz abgelegten Informationen ueber die Grafikdatei und
   dem Wissen ueber den korrekten Programmaufruf des Anzeigeprogramms einen
   DOS-Befehl parametrieren. Das Ergebnis muss der Aufruf des
   Anzeigeprogramms inklusive der gewuenschten Grafikdatei. Mit allen
   notwendigen Startoptionen und Pfadangaben. Es muss derselbe Aufruf sein,
   den Sie von der DOS-Ebene benutzen wuerden, um dieses Grafikdatei sofort
   anzeigen zu lassen. Das ist alles. Einschraenkungen ergeben sich hierbei
   durch die begrenzte Laenge der DOS-Eingabezeile. Ihr Programmaufruf darf
   nicht laenger als 128 Zeichen werden.

   In der Beispieldatenbank koennen Sie sehen wie es gemacht wird. Wir haben
   fuer diesen Abschnitt die Sprungmarke   vorgesehen. Dass der Abschnitt so
   kurz ausfallen kann, liegt an den Faehigkeiten des Programms PIXVIEW. Wer
   andere Programme einsetzt, hat u.U. mehr zu tun. Eine Besonderheit
   taucht hier auf. PIXVIEW und das beigefuegte Programm GIFEXE
   koennen aus Grafikdateien selbstablaufende Programme (.EXE) machen.
   PIXVIEW macht das fuer alle Formate, die es unterstuetzt, GIFEXE nur
   fuer GIF-Dateien. So ein Programm erzeugt nur eine Grafik auf dem
   Bildschirm und loescht sie wieder, wenn sie <ESC> oder eine
   andere Taste druecken. Ausserdem haben wir der Einfachheit halber alle
   Grafiken in ein Verzeichnis unterhalb des Datenbankverzeichnisses
   gelegt. Man muss es aber nicht so machen. Bei umfangreichen
   Grafiksammlungen ist eine geordnete Speicherung in mehreren
   Verzeichnissen sicherlich sinnvoller, weil uebersichtlicher.


Installation der Beispieldatenbank
----------------------------------

Die Datei ACGRAFIK.LZH enthaelt folgende Dateien:

     -    PROGS.EXE      Ein selbstentpackendes Archiv. Hier finden Sie die
                         Programme PRESTOG.EXE, APACG.EXE, ACP.EXE,
                         PIXVIEW.EXE und PIXVIEW.DOC. Kopieren Sie dieses
                         Programm in das normale allegro-
                         Programmverzeichnis und starten Sie es dort. Nach
                         dem Entpacken koennen sie diese Datei loeschen

     -    DEMOGRAF.EXE   Ebenfalls ein selbstentpackendes Archiv. Hier ist 
die Datenbank sammt der zugehoerigen
                         modifizierten Parameterdateien. Erzeugen Sie
                         unterhalb von C:\allegro das Verzeichnis DEMOGRAF,
                         kopieren Sie dieses Programm dort hinein und
                         starten Sie es aus dem Verzeichnis DEMOGRAF
                         heraus. Die Beispieldatenbank wird angelegt und
                         das Verzeichnis fuer die Grafiken angelegt.

   Die Batchdatei GRAF1.BAT startet die Datenbank mit PRESTOG und die Datei
   GRAF2.BAT mit APACG. Die Beispielgrafiken finden Sie unter den
   Verfassern Kirk, James T., Mouse, Mickey und Solo, Han.


Zusaetzliche Bonbons
-------------------

   Die Faehigkeit, aus einem Programm heraus ein anderes zu starten und
   dabei sehr viel Speicherplatz zur Verfuegung zu stellen, wirkt sich auch
   an anderen Stellen aus. Zunaechst PRESTOG: Wenn man ueber zweimaligem
   Druecken von <F2> aus der Titelanzeige heraus in die Dateiauswahl fuer
   Parameterdateien kommt, kann man die Datei, vor der gerade der Cursor
   steht mit <F10> in den Editor holen. Bisher wurde immer gnadenlos X.COM
   benutzt. Der war auch der einzige, der funktionierte, da er klein genug
   war. Jetzt koennen Sie eine Batchdatei X.BAT anlegen, von der aus Sie
   Ihren eigenen Editor aufrufen koennen. Das kann sogar ein grosser Editor
   wie beispielsweise AURORA (schoenen Gruss an Herrn Lackhoff) sein. Es muss
   nur sichergestellt sein, dass die Datei X.BAT vor X.COM gefunden wird.
   Sonst funktioniert es nicht. (Man kann ja zur Not X.COM umbenennen)

   Im uebrigen kommt man ja aus der Titelanzeige auch mit <Alt+F10> auf die
   DOS-Ebene! Sie koennen dann alle moeglichen Zwischenaktionen starten.
   Vielleicht sogar mal schnell ein kleines Spielchen auf dem PC?
   (Natuerlich nicht waehrend der Arbeitszeit!) Mit MEM /C erhalten Sie eine
   Statistik ueber die momentane Speicherbelegung. Testen Sie das mal und
   staunen Sie.

   Ausserdem wurde versuchsweise im Datensatz-Editor ein Befehl 'B'
   eingefuehrt. Er funktioniert analog zu 'b'. Nur dass statt des eingebauten
   Fenstereditors der Kategorieinhalt dem externen Editor, der mit dem
   Befehl X.BAT oder X.COM gestartet wird. Der Inhalt einer Kategorie wird
   einer temporaeren Datei #nn.AC$ uebrgeben. 'nn' ist die Kategorienummer.

   Lange Kategorietexte werden umgebrochen (Zeilenlaenge ist 75). Das
   Zeichen ¶ dient als Signal fuer einen festen Zeilenumbruch: Im Editor
   fuehrt es zu einer Leerzeile. Grund fuer dieses Verhalten: Es gibt
   ASCII-Editoren, die ganze Paragraphen neu durchformatieren koennen. Fuer
   die ist nach einem Text eine Leerzeile das Signal, dass ein Paragraph zu
   Ende ist.

   Wenn die Datei abgespeichert wird, werden alle Ersetzungen rueckgaengig
   gemacht. Auch der Zeilenumbruch wird zurueckgenommen. Die Zwischendatei
   wird wieder geloescht.

   CockPit wurde so modifiziert, dass man jetzt auch grosse Editoren
   einsetzen kann. Bisher gab es hier auch Grenzen: EDIT von DOS
   funktionierte zwar, konnte dann aber nur kleine Dateien bearbeiten. Der
   AURORA-Editor beispielsweise funktionierte gar nicht. Diese
   Einschraenkungen gibt es jetzt ebenfalls nicht mehr.


Technischer Hintergrund zum Aufruf von anderen Programmen
---------------------------------------------------------

   Die Programmteil, die in PRESTOG usw. dafuer sorgen, dass das Programm
   fast vollstaendig aus dem Speicher verschwindet, bevor das Fremdprogramm
   aufgerufen wird, arbeiten wie folgt: Zunaechst versuchen sie das Programm
   in den XMS- oder EMS-Speicher auszulagern. Diese Methode ist die
   schnellste. Wenn das nicht klappt, wird im Verzeichnis, von dem aus
   PRESTOG aufgerufen wurde, eine temporaere Datei angelegt. Hier wird
   PRESTOG dann "zwischengelagert". Nachdem das Fremdprogramm beendet ist,
   wird der alte Zustand von PRESTOG wieder hergestellt und eine evtl.
   erzeugte temporaere Datei geloescht. Dieses Verfahren kann aber in
   Netzwerken zu Problemen fuehren, wenn man die Programme von sogenannten
   Diskless-Stations aus startet. Man muss dann dafuer sorgen, dass jedes
   Geraet im Netz sein eigenen Startverzeichnis auf dem Server erhaelt, von
   wo aus dieses Programm aufgerufen wird. Im Novell-Netz kann so verfahren
   werden: Jedes Geraet im Netz erhaelt eine eindeutige Verbindungsnummer.
   Diese Nummer bleibt bestehen, solange das Geraet eingeloggt ist. Diese
   Verbindungsnummer muss man im Login-Script in eine Environmentvariable
   uebertragen, da ein direkter Zugriff nur waehrend des Abarbeitens des
   Scriptes moeglich ist. Z.B. schreibt man:

     set nummer ="%STATION"

   Der Ausdruck "%STATION" muss genauso geschrieben werden. In allen
   Batchdateien kann man dann diese Nummer mit %nummer% benutzen. In den
   Batchaufrufen fuer die hier vorgestellten Programme programmiert man:

     md %nummer%
     cd %nummer%
     (Aufruf von PRESTOG oder so)
     cd ..
     rd %nummer%

   Bei anderen Netzwerkbetriebssystemen gibt es aehnliche Moeglicheiten.


Noch ein copyright-technischer Hinweis
--------------------------------------

   Diese neuen Faehigkeiten sind nicht allein auf unserem Mist gewachsen,
   sondern Ralph Brown, ein As der MSDOS-Programmierung, hat einen nicht
   unwichtigen Teil beigesteuert. Hier sein Copyright-Vermerk:

       "This product uses the SPAWNO routines by Ralf Brown
        to minimize memory use while shelling to DOS and
        running other programs."


Anregungen und Kritik
---------------------

   Falls Probleme auftauchen oder es Anregungen und Kritik zum Verfahren
   gibt, wenden Sie sich bitte an Dierk Hoeppner (d.hoeppner at tu-bs.de), der
   diese Dinge verzapft hat.

###############################################################
    Dierk Hoeppner                      Universitaetsbibliothek
    Allegro-Arbeitsgruppe                     Pockelsstr. 13
                                           38106 Braunschweig
   Novell: BIBLIO/HO                       Tel:(0531)-391-5066
 Internet: d.hoeppner at tu-bs.de             Fax:(0531)-391-5836
###############################################################



Mehr Informationen über die Mailingliste Allegro