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