[Allegro] acon-Uneinheitlichkeiten

Bernhard Eversberg ev at biblio.tu-bs.de
Do Jun 10 16:56:46 CEST 2010


Ein paar schnelle Antworten:


Thomas Berger schrieb:
> 
> 1. koennte acon nicht auch auf die Existenz von freien
> Variablen testen duerfen:
> 
> if $abc command   [ab V26]
> 	Wenn die Variable  $abc  belegt ist, wird command ausgeführt.
Läßt sich machen.
> 
> 
> 2. relative Pfade:
> [allegro-Installation in g:\otto, dort auch Arbeitsverzeichnis:]
> 
>> acon -j test.job -b.\demo\cat               OK
> ProgDir=
> 
> 
> Vorwaerts-Slashes jedoch ein Problem:
> 
>> acon -j test.job -bdemo/cat
> ProgDir=
> Directory for DB=avdemo is c:\allegro\demo2
> Database : cat ; User : opac ; Access : 0
> 
> cat.adx not found in c:\allegro\demo2
> 
OK, das können wir richten.

> 
> 3. die in 2. offensichtliche Existenz eines Standard-Pfads
> "c:\allegro\demo2" fuer Datenbanken geht ja wohl gar nicht!
> 
Was statt dessen?
Gedacht ist das nur als Sonderservice für Windows-Version, damit man
schnell mal eben einen Job ausprobieren kann, bei dem es auf die
Datenbank nicht wirklich ankommt; dann braucht man keine
@-Zeile und keine Option -b, sondern sagt einfach  acon <xyz
um xyz.job zu testen. Ansonsten macht's ja keinen Sinn, einen
Job ohne Angabe der Datenbank zu starten, d.h. der Default hat
dann keine Wirkung.

> 
> 4. Ein acon-Job moechte ja manchmal bei "Fehler" sich so beenden,
> dass die aufrufende Anwendung darauf reagieren kann (SRCH.EXE liefert
> z.B. errorlevel 10, wenn es 0 Treffer zum Suchbegriff gab). Derzeit
> liefert acon Errorlevel 1, wenn etwas mit dem Aufruf nicht geklappt
> hat, sonst ist es aber immer Errolevel 0. Koennte nicht "nur avanti"
> eingefuehrt werden, dass bei "end" der Inhalt der iV (oder iz/iZ?)
> als Zahl den Errorlevel von acon bildet?
Schau'mer mal.

> 
> 
> 5.
> var "$OPTS" $ARGV (0,2)
> liefert "$O" und nicht "$OPTS" plus zwei Zeichen
> 
Man muß so schreiben:
var $ARGV (0,2)
ins #uv2
var "$OPTS" #uv2
Denn (0,2) wirkt, steht ein Spatium davor, auf den gesamten momentanen
iV-Text, nicht auf die $-Variable. Letzteres [analog zu #xyz(0,2)] geht 
leider nicht.

> 
> 6. variable Zuweisung an freie Variable ist gar nicht moeglich:
> 
> 6a
> var "$ABC hallo"
> ins
> write "$ABC now >" $ABC "<" n
> 
Das läßt sich auch machen.

> 
> 
> 7. Der include-Mechanismus (und eigentlich auch exec) ist m.E. auch fuer acon
> sehr interessant. Ich entwickle gerade ein bischen Job/Flex-code, der die
> Kommandozeilenschalter in eine freie Variable ueberfuehrt, die dann wie ein
> assoziatives Array nutzbar ist, das waere ein idealer Kandidat fuer ein per
> include einzubindendes ausgelagertes Unterprogramm.
> 
> Im Hinblick auf die Nutzung in Avanti-Kontexten muss allerdings sichergestellt
> werden, dass nur gewisse (Vorschlag: relative, nur unterhalb des aktuellen
> oder Daten- Verzeichnisses, welches war das noch gleich?) Pfade fuer die
> einzubindenden / anzuschliessenden Dateien erlaubt sind.
> 
Nicht so leicht, aber schau'mer mal.
> 
> 8. Will man vorhandene Aufrufe von srch.exe in acon -j srch.job umwandeln,
> so geht folgendes schief:
> a. acon beruecksichtigt nicht die Umgebungsvariable -P
> b. typische Aufrufe waren srch ... -d*(Datenverz)\(Name)_*
>    das "*" zwischen "-d" und dem Pfad stoert das "dir" in srch.job,
>    es werden keine Dateien gefunden
> c. [desgleichen verhindert das "*", dass der Aufrufschalter -d fuer -b
>    eintreten kann, wenn acon beim Start die Datenbank initialisieren will.
>    man wird aber wohl stets schematisch "-b" setzen, wenn es um SRCH-
>    Kompatiblitaet geht]
> d. typische Aufrufe waren auch  srch ... -d(Dateiname)
>    fuer eine .alg-Datei (implizite Extension also!) im Daten- oder
>    Aufrufverzeichnis. Die funktionieren derzeit auch nicht.
> e. Nachfrage: srch.job erbastelt sich fehlende Inputdateien aus env -d,
>    env -b und env -k1 (unueblich), wenn -d nicht angegeben ist. Sollte
>    es nicht besser auf die beim Initialisieren fixierten cstrings
>    D, B und K1 zurueckgreifen, die im Zweifel aus dem Aufrufschalter -b
>    abgeleitet wurden?
> 
Das sollte alles machbar sein.

> 9. ist eine .alg-Datei leer (0 Bytes) so geraet acon -j srch.job in eine
>    Endlosschleife
> J:<E111> -1 fehlerhaft
> 
Das muss verbessert werden.

B.Eversberg




Mehr Informationen über die Mailingliste Allegro