Vb.128: Es nimmt kein Ende

Bernhard Eversberg EV at buch.biblio.etc.tu-bs.de
Don Jan 27 08:27:39 CET 2000


Verlautbarung 128 der Entwicklungsabteilung                     2000-01-27
-------------------------------------------

Neue Moeglichkeiten, neue FLEX-Befehle
--------------------------------------

Aufruf von a99/alcarta aus Netscape oder IE
-------------------------------------------
Es ist mit der neuesten Version (27.1.00) moeglich, von einer HTML-Seite
aus, unter Netscape oder IE, eine lokale Datenbank lokal zu starten.
(Wohlgemerkt: NICHT eine entfernte Datenbank ueber das Internet zu benutzen!)

Voraussetzungen:

1. INI-Datei kopieren: xyz.ini -> xyz.ina
   (um Konflikte mit anderen INI-Dateien zu vermeiden)

2. Unter Netscape oder WindowsExploder den Typ INA verbinden mit a99
   Startbefehl:  c:\allegro\a99.exe

3. In eine HTML-Seite einen Link einbauen, der so aussehen muss:

   <a href="file:///c|/allegro/demo2/orda.ina">Demo-Datenbank</a></li>

NetScape und IE wissen dann: Diese Datei muss mit "a99.exe" geoeffnet werden.
So kann man sich nun HTML-Menuedateien machen, von denen aus direkt eine
Datenbank mit a99 gestartet werden kann.

Ausserdem kann man, bei Abwesenheit jedweder .INI-Datei, a99 direkt auf
eine .cDX loslassen:   a99 xyz.cdx
(Dann wird default.ini gelesen, so vorhanden, aber die Datenbank xyz 
benutzt.)

Wird "a99" ohne Argument gestartet, hat man die Wahl unter den vorhandenen
.INI, .INA und .cDX-Dateien. Daher fuehrt nun auch ein Startversuch mit
Null Ahnung und Null Investment zu einem Ergebnis, wenn ueberhaupt eine 
Datenbank vorhanden ist.
(Wenn man mit Null Ahnung intuitiv "allegro.exe" startet, ist das nicht der 
Fall, das ist bekannt. Auf "cp" kommt keiner mit Intuition.)


Neue FLEX-Befehle
-----------------
Die Wuensche hoeren nicht auf. Jetzt wurden diese Befehle neu geschaffen:

find #N
   Satz Nummer N wird geladen. Mit "if no" pruefen, ob die Nummer nicht
   besetzt ist, mit "if cancel", ob die Nummer zu gross ist.

next #
prev #
   Naechste bzw. vorige interne Satznummer laden. Dieselben Pruefungen
   wie bei "find #".
   Die Pruefungen muss man zur Sicherheit immer beide machen!

Mit diesen Befehlen kann man nun Schleifen machen, die ueber die gesamte
Datenbank laufen. Hier ein Skript, das man ausgestalten kann:

  Alle Signaturen und Titel herausschreiben, geloeschte markieren
  Datei DUMP fuer Export oeffnen
xport f dump
  ersten Satz holen
find #1
  Schleife
:rr
  Satznummer unbesetzt? naechste holen
if no jump next
  Satz geloescht? "DEL " schreiben
if del write "DEL "
  Signatur und Titel schreiben
write #90 " = " #20 13 10
  Naechsten Satz holen
:next
next #
  Ende erreicht?
if cancel jump ende
  sonst Schleife
jump rr
:ende
write "ENDE"

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


Neue if-Befehle
---------------

if %xyz% <command>
   wenn xyz in der iV vorkommt, wird command ausgefuehrt

if _xyz_ <command>
   wenn xyz im aktuellen Satz vorkommt, wird command ausgefuehrt

if *#nnn_xyz_ <command>
   wenn xyz in Kategorie #nnn des aktuellen Satzes vorkommt, wird command 
   ausgefuehrt.

Damit wird es z.B. moeglich, jede ASCII-Datei zu durchsuchen. Mit folgendem
FLEX erhaelt man die gefundene Zeile angezeigt:

    Datei oeffnen
open <dateiname>
if no jump fehler
:loop
     zeile lesen, in interne Var. kopieren
read iv
     Datei zu Ende?
if cancel jump ende
     Kommt abc in der Zeile vor?
if %abc% jump found
     Nein: Schleife fortsetzen
jump loop
     ja
:found
      gefundene Zeile anzeigen und Ende
message
end
     Datei konnte nicht geoeffnet werden
:fehler
mess Dateifehler
end
:ende
mess ENDE, nichts gefunden

Bernhard Eversberg
Universitaetsbibliothek, Postf. 3329, 
D-38023 Braunschweig, Germany
Tel.  +49 531 391-5026 , -5011 , FAX  -5836
e-mail  B.Eversberg at tu-bs.de