[Allegro] Entscheidungen

Fischer, Thomas fischer at sub.uni-goettingen.de
Mo Sep 28 12:49:04 CEST 2015


Hallo Herr Eversberg,

> Am 28.09.2015 um 11:45 schrieb Fischer, Thomas:
>> 1. Kann ich keycheck in einem JOB einsetzen?
> Nein, das geht grundsätzlich nicht. Im Job kann man nur Eingaben mit Enter
> entgegennehmen.

OK, das sollte dann bei xkeychk.rtf vielleicht vermerkt werden. (Warum heißt das nicht xkeycheck.rtf? Für DOS ist das doch nicht relevant.)
Damit ist bei einem JOB Strg-c die einzige Möglichkeit, aus dem Job auszusteigen, oder?

Wann wird bei einem Befehl gemeldet, dass er mit acon nicht ausführbar ist? Z.B. liefert
file ausgabe.txt
die Meldung
Befehl 'file ausgabe.txt' leider nicht ausfuehrbar

>> 2. Ein Abschnitt in meinem FLEX lautet:
>> 
>> var $teil (15,5)
>> if not =$sigel jump next
>> write $teil (15,5) " = " $sigel " in Nr. " i " gefunden!" n
>> 
>> ...
>> Es hat eine Weile gedauert, bis ich gemerkt habe, dass
>> – acon beim Vergleich eine andere Syntax benutzt und
>> – dabei keine $-Variablen akzeptiert.
>> Ließe sich das ändern? Wenn nicht wäre eine deutlichere Warnung angebracht (auf den ersten Punkt wird schon hingewiesen).
> Wie soll die Warnung lauten und wo soll sie hin?

In xif.rtf steht:
if =#nnn command    (vgl. oben den Befehl  if #nnn ... : nicht dasselbe!)
if =$abc command    (vgl. oben den Befehl  if $abc ... : nicht dasselbe!)
	acon : Leider etwas anders,  siehe unten

und unten steht dann:
NUR für acon  gilt:

if #nnn = #kkk command          Statt  =  kann auch  <  oder  >  stehen
	Vergleiche Inhalt von  #nnn  mit Inhalt von  #kkk
	 Bei Gleichheit bzw. größer/kleiner: command  ausführen
   	 #nnn  und/oder  #kkk  können auch Anwendervariablen sein (#u-Variablen).

Ich schlage vor:
Oben:
Achtung: In acon anders, außerdem sind $-Variablen nicht zulässig, mehr siehe unten.

Und unten dann:
if #nnn = #kkk command          Statt  =  kann auch  <  oder  >  stehen
	Vergleiche Inhalt von  #nnn  mit Inhalt von  #kkk
	 Bei Gleichheit bzw. größer/kleiner: command  ausführen
   	 #nnn  und/oder  #kkk  können auch Anwendervariablen sein (#u-Variablen), aber keine $-Variablen.

Beachte: Im Gegensatz zum Vergleich in einer Flex-Datei wird jeweils der vollständige Inhalt der Variablen verglichen und nicht nur eine anfängliche Übereinstimmung geprüft.

>>  Außerdem hat der Vergleich mit "=" eine andere Bedeutung (nicht nur der Anfang, sondern die ganze Variable wird überprüft), das hätte ich auch gern in FLEX…
> Wie meinen Sie das genau? Welcher Typ Vergleich?

S.o.

>> In diesem Zusammenhang fände ich eine Liste der Punkte hilfreich, die zu beachten sind, wenn man einen funktionsfähigen FLEX in einen ebensolchen JOB umwandeln möchte. Oder gibt es das schon irgendwo?
> Nein. Man muß immer zuerst die Doku eines Befehls konsultieren, und da müssen die betr.
> Hinweise stehen.

Ich vermute (und mache das selber so), dass man gern erst einmal eine FLEX-Datei zusammenbaut, die das leistet, was man erreichen will (weil es komfortabler ist) und dann aus der FLEX-Datei eine JOB-Datei macht. Da wünsche ich mir eine Liste der Stolperfallen. Es geht also nicht um einen allgemeinen Vergleich FLEX vs. JOB, sondern um die Betrachtung dieser speziellen Situation; da ist "if =$sigel" ein spezieller Fall.


>> 3. Zur der Fehlermeldung:
>> Das ganze sieht so aus:
>> C:\allegro\KAPSEL>..\acon -j nurFilter -k p -b Kapsel\OPRD -u zi037
>> Error in reading OPRD.ppi-File from Kapsel\: K:<E167> Fehler 16 bei Index-Datei Kapsel\OPRD.pdx (errno=2)
>> Nicht genug Arbeitsspeicher ODER Indexdatei existiert schon
>> 
>> Der Parameter -b ist also falsch. Korrekte Ergebnisse liefert
>> C:\allegro\KAPSEL>..\acon -j nurFilter -k p -b C:\allegro\Kapsel\OPRD -u zi037
>> während
>> C:\allegro\KAPSEL>..\acon -j nurFilter -k p -b OPRD -u zi037
>> offenbar ohne Fehlermeldung statt auf OPRD auf die Demodatenbank zugreift.
>> 
>> (Daher auch meine Wünsche zur Klarstellung der acon-Parameter.)
>> 
> Was sollen wir wo und wie klarstellen?

Ich hatte am 22.9. ("anon-Parameter") darauf hingewiesen, dass die beiden zentralen aktuellen Dokumente zu den acon-Parametern,

– acon : allegro-Konsolprogramm (ab V28)
	(http://www.allegro-c.de/doku/acon.htm)
und
– acon and FLEX for allegro databases
	(http://www.allegro-c.de/doku/aconflex.htm)
(übrigens beide unter http://www.allegro-c.de/doku/ nicht verlinkt) verschiedene Beschreibungen der bei FLEX benötigten Parameter liefern.

-d wird im zweiten Dokument neben -b benutzt, im ersten Dokument nicht.

Wenn man z.B. -d und -b gleichzeitig angibt
C:\allegro\KAPSEL>..\acon -j nurFilter -k p -d C:\allegro\KAPSEL\OPRD -b OPRD -u zi037
kann man es schaffen, eine vierte unsinnige Fehlermeldung (errno=2) zu erzeugen:
Error in reading OPRD.ppi-File from C:\allegro\KAPSEL\OPRD\: K:<E167> Fehler 16 bei Index-Datei C:\allegro\KAPSEL\OPRD\OPRD.pdx (errno=2)
Nicht genug Arbeitsspeicher ODER Indexdatei existiert schon.

Könnte in dieser Situation nicht einfach eine Meldung der Art
Error in reading OPRD.ppi-File: C:\allegro\KAPSEL\OPRD\OPRD.ppi nicht gefunden.
ausgegeben werden?
(Aus der Meldung geht nicht hervor, ob primär die ppi- oder die pdx-Datei vermisst wird.)


Mit freundlichen Grüßen
Thomas Fischer

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 842 bytes
Beschreibung: Message signed with OpenPGP using GPGMail
URL         : <http://bibservices.biblio.etc.tu-bs.de/pipermail/allegro/attachments/20150928/febff213/attachment.sig>


Mehr Informationen über die Mailingliste Allegro