[Allegro] Vb.284 : V36.4 ist da
Bernhard Eversberg
b-eversberg at gmx.de
Do Dez 1 10:51:54 CET 2016
Verlautbarung 284 zur allegro-Entwicklung 2016-12-01
Download: http://www.allegro-b.de/download/inst-all.exe
Neue Export-Diagnose und kleinere Verbesserungen
================================================
V36.4 ist da
------------
Veraendert wurden bzw. neu hinzu kamen nur ein paar wenige FLEXe,
Parameterdateien und Dokumentationsdateien (.rtf und .vw) sowie ein
neuer expdiag.job, s.u.
Die Verbesserungen an Programmen halten sich in Grenzen. Ein neueres
Datum muß nicht bedeuten, dass was geaendert wurde! Vielfach wurden
einfach die Quellprogramme formal verbessert und neu kompiliert.
(Die Quellen werden in Kuerze neu bereitgestellt.)
Index-Erneuerung: Spezialfall z.B. cat.azx
------------------------------------------
Es kann sein, dass man eine Indexdatei hat, in der nur persistente
Variablen sind. Diese soll nicht verschwinden, wenn man bei der
Index-Erneuerung per h org genau diese Datei auswaehlt, denn sie
kann nicht aus den Datensaetzen erzeugt werden - die persistenten
Variablen entstehen ja nur durch FLEX-Befehle, nicht mit Hilfe der
Indexparameter aus den Datensaetzen.
Fuer die Gesamt-Erneuerung aller Indexdateien war schon eingebaut,
dass qrix.exe eine solche Indexdatei dann nicht loescht, aber bei
der Einzel-Erneuerung war das nicht so, da verschwand dann die
u.U. muehsam aufgebaute Indexdatei mitsamt allen persistenten Var.
Dies wurde behoben: Im org.bat wird geprueft, ob ueberhaupt
eine Datei ii1 vorhanden ist, sonst wird qrix nicht ausgefuehrt,
denn qrix erledigt dann auch das Loeschen. So bleibt cat.azx, oder
was immer es ist, unangetastet.
Wer nicht so genau Bescheid weiss mit den Zusammenhaengen, ist nun
davor gesichert, versehentlich eine PV-Indexdatei zu loeschen.
RDA-Codes : FLEX verbessert
---------------------------
Es kann so kommen, dass mal die Codelisten aktualisiert werden muessen.
Dann brauchen wir im Prinzip nur den FLEX rdacodes.flx zu erneuern,
der Anwender holt sich die neue Fassung mit X gf rdacodes.flx , dann
gibt er in a99 den Befehl:
X rdacodes
und schwupp, sind die Listen aktualisiert (in cat.azx).
Das waere also total unproblematisch. Der FLEX wurde trotzdem noch in
einigen Punkten verbessert: Es wird bei jeder der vier Listen zuerst
geprueft, ob sie schon vorhanden ist, und wenn ja, gefragt, ob sie
aktualisiert werden soll.
Am Ende wird der Index wieder zurückgesetzt auf den Punkt vor dem
X-Befehl. Sonst ist man naemlich mit Alt+i ploetzlich in der Datei
cat.azx, wo man ja bewusst gar nicht hin wollte. Solcherlei
Irritation macht immer einen schlechten Eindruck ...
DemoBank : Neue RDA-Titel
-------------------------
Die Demo-Datenbank wurde um einige neuere Titel erweitert, die mit dem
dnb.flx bzw. srugbv.fl aus der DNB und vom GBV abgezapft wurden.
Man findet sie unter "rda" im Signaturenregister (8).
Die RDA-Saetze enthalten ferner alle eine #10 rda.
Mit zur Demo-Bank gehoert jetzt auch cat.azx und enthaelt die
RDA-Codes (s. oben).
DNB-FLEX verbessert
-------------------
Es kam zu einer Endlosschleife, wenn in einem DNB-Satz zwei MARC-Felder
mit der Nummer 490 (= Serientitel) vorkamen. Das wurde behoben, daraus
werden dann zwei oder mehr Felder der Kategorie #85.
dnb.flx und srugbv.flx uebernehmen jetzt die ZDB-Nummer in #89Z. Das
kann nuetzlich sein bei Migrationen oder Datentausch.
Neuer FLEX ftsu.flx = Volltextsuche in den geloeschten Saetzen
-------------------
Es kommt schon mal vor, dass man einen Satz irrtuemlich geloescht hat.
Dabei können drei Situationen auftreten:
A.
Wenn man das sofort merkt - kein Problem: Mit Alt+q die Liste der
"Daten in Bearb." aufmachen, da steht der Satz drin, am Ende.
1. Balken drauf - der Satz erscheint mit rosa Hintergrund
2. mit Esc Liste zumachen
3. auf dem Menue oben die Funkton "Aktivieren" klicken
4. Die Frage bejahen, ob der Satz neu gespeichert werden soll.
Fertig.
B.
Wenn man es erst später merkt, nach dem Ende der Sitzung:
Dann kommt der neue FLEX zur Geltung:
1. X ftsu
2. Suchwort eingeben - irgendein charakteristisches Wort aus dem Titel
oder einen Namen oder sonstwas, ganz egal.
3. Die geloeschten Saetze werden nicht im Index (da stehen sie nicht
mehr) gesucht, sondern sie werden zuerst im Reg. 1 zu einer
Ergebnismenge zusammengefasst: Dazu dienen die Schluessel mit //
am Anfang.
4. Diese Saetze sind in der Datenbank durchaus noch vorhanden, nur
eben ungueltig gemacht. Trotzdem kann das Programm auf diese
Ergebnismenge die Prozedur der "Volltextsuche in der Erg.Menge"
anwenden.
5. Ein oder mehrere Datensaetze erscheinen, alle mit rosa Hintergrund,
in denen der Suchbegriff vorkommt.
6. Balken auf den richtigen
7. mit Esc Liste zumachen
8. auf dem Menue oben die Funkton "Aktivieren" klicken
9. Die Frage bejahen, ob der Satz neu gespeichert werden soll.
C.
Ein PROBLEM kann auftreten, wenn einem erst nach Tagen auffaellt,
dass man da einen Satz faelschlich geloescht hat! Der ungueltig
gemachte Datensatz kann in der Zwischenzeit von einem anderen
ueberschrieben worden sein. Auch dann besteht noch eine Chance:
Eine Kopie des geloeschten Satzes steht in der Log-Datei, da kann
man ihn wieder herausfischen. Die Funktion steht auf dem Menue
h super
Klicken Sie da auf LOG, oder zuerst auf HILFE..HILFE..HILFE, um die
Sache genauer erklärt zu bekommen. Weiter geht es dann wie im
Fall B, sobald man den Satz auf dem Schirm hat.
cat.api : Nicht mehr zwei Varianten
-----------------------------------
Es gab lange Zeit eine grosse und eine kleine Variante der Standard-
Indexparameter cat.api. Die kleine lag auf dem ProgDir, die grosse in
demo und demo2. Das war nicht extrem sinnvoll und inzwischen eher
überflüssig. Es kann ruhig jeder mit der groesseren arbeiten, auch wenn
z.B. die Ausleih- oder Erwerbungsfunktionen nicht genutzt werden.
Deshalb ist jetzt nur noch die groessere Version im GP, und zwar
im ProgDir, nicht mehr in demo und demo2.
Schauen Sie mal, von welchem Datum Ihre Fassung ist, wenn Sie eine
in Ihrem Datenordner haben! Sind Sie zufrieden mit der Indexierung?
Sind bei Ihnen keine Besonderheiten eingebaut worden, etwas fuer die
Signaturen o.ae.? Dann mal die aeltere Fassung woanders hin verschieben
und den Index neu aufbauen; das Programm nimmt dafuer dann die neue
Fassung vom ProgDir. Schauen Sie sich dann in allen Registern kritisch
um. Bemerken Sie unerfreulich andersartige Eintraege im Vergleich zu
vorher? Dann die alte Datei wieder zurueckkopieren in den Datenordner
und nochmal den Index erneuern, dann ist wieder alles wie vorher.
Unerklaerliche Auffaelligkeiten bitte melden, nicht sich murrend
damit abfinden!
Hilfe A-Z : quick.vw
--------------------
Die Datei quick.vw im HELP-Ordner steckt hinter dem Button "Hilfe A-Z",
kann aber auch mit dem Befehl v quick abgerufen werden.
Sie wurde erweitert um etliche Eintraege, die sich auf die "Tricks"
beziehen. Diese sind zwar z.T. nur fuer FLEXperten interessant und
daher in flex.vw eingebaut, aber viele Themen könnten auch jemanden
interessieren oder von ihm gesucht werden, der nur die quick.vw
per Button aufruft und mit FLEX nichts am Hut hat.
Platz fuer interne Hilfsvariablen erweitert
-------------------------------------------
Beim Verarbeiten von groesseren Textdateien mit FLEX konnte es
zum Absturz kommen, z.B. bei Befehlen wie var (b"xyz"), wenn
in dem Moment der Inhalt der iV jenseits 250000 Byte lang war.
Das wurde behoben. Ganz beliebige Laengen sind aber weiterhin
nicht moeglich! Der dynamische Umgang mit langen Textvariablen
ist in C++ leider nicht so einfach bzw. ist in den Programmen
suboptimal geloest. Dies zu aendern ist im Nachhinein nicht
mehr moeglich, ausserdem wuerde wohl das Laufzeitverhalten
sich verschlechtern. Hier ist definitiv ein Manko von allegro
zu erblicken, jedoch ist es fuer Normalanwender nicht relevant.
Hinweis: Wenn man beliebig lange Textdateien zeilenweise verarbeitet,
entsteht kein Problem. Nur wenn man eine Textdatei komplett einliest
mit var Fdateiname und dann diesen Inhalt in eine $-Variable
kopiert und diese mit Manipulationsbefehlen b"..." und e"..."
abarbeitet.
Davon profitieren a99, alcarta und acon.
FLEX-Hilfetexte HTM-Version aktualisiert
----------------------------------------
http://www.allegro-b-de/download/doku/flex
var sk klappte nicht (Absturz)
--------------------
Dieser Befehl entspricht der Funktion F7 von a99: die Registereintraege
des aktuellen Satzes werden in die iV geschrieben.
Behoben
Export-Parameterdateien : Diagnose-FLEX (neu)
---------------------------------------
Wer sich mit Export- und Indexparametern beschaeftigt, kann schon mal
ein schwierig aufzudeckendes Problem erleben:
1. Eine Sprungmarke ist nicht vorhanden
2. Eine Sprungmarke kommt doppelt vor
3. Eine Feldnummer ist ungueltig
4. Ein Unterprogr. existiert nicht oder hat keinen Abschluss
u.v.m.
Sowas ist leichter rauszukriegen mit einem hilfreichen Werkzeug. Es
gibt sogar zwei:
A. Das Allers-Programm jumps.exe - leider 16bit
B. Das Berger-Programm analyze.pl - braucht leider Perl
Ein Jobscript expdiag.job wurde nun geschrieben (Export-Diagnose).
Mit acon kann man damit beide Probleme schnell loesen.
Die Datei enthaelt ausreichend Kommentar, in engj. Sprache.
Aufruf: acon -jexpdiag -fdateiname -dDbDir -bDbName -kKonf
z.B.: acon -jexpdiag -fcat.api -ddemo2 -bcat -ka
Voraussetzung ist das neue acon, auch fuer Linux!
a99 und acon Export: Kleine Ungenauigkeit mit #b~x
--------------------------------------------------
Bestimmte Grundwerte der betr. Parameter wurden rueckgesetzt, z.B.
Zeilenlaenge und Einrueckung, Auswirkung also vor allem bei Textexport.
(Aufgefallen war das einem Anwender mit seinen Anzeigeparametern.)
Behoben
Export : Maskierungszeichen bei Ersetzungen
-------------------------------------------
(Handbuch 10.2.6.3, S. 202 unten)
Bis jetzt war es so, dass nur das ? als Maskierungszeichen in den
Ersetzungsbefehlen verwendet werden konnte. Deshalb konnte man nicht
z.B. sagen
#90 ,"_x!_x._"
um die Zeichenfolge x! in #90 in x. zu wandeln, auch wenn man
?=!
gesetzt hatte, denn dies wirkte sich nur in Manipulationsbefehlen aus,
z.B. in b"x?y"
Dies wurde geaendert, und zwar in a99, a99a, alcarta, acon und Quadriga
aber nicht in PRESTO.
Soll diese Maskierung nur fuer einige wenige Befehle gelten:
b?=!
#90 ,"_x!_x._"
...
b?=?
Kalender-FLEX repariert
-----------------------
Mit der Datei kalender.flx war etwas passiert, wodurch der Klick auf
die Monate in der obersten Zeile nicht mehr klappte, ausser FEB.
Das wurde repariert.
"Special Logging"
-----------------
Bereits 2013 wurde eine set-Funktion eingefuehrt, die nuetzlich sein
kann fuer Fehlerdiagnosen bei Speichervorgaengen.
Leider wurde darueber in keiner Vb berichtet.
Dokumentation steht aber in h xset:
set S0/S1 (grosses S)
Special Logging off / on
In die Datei DbName.slo werden bei S1 Testmeldungen geschrieben,
die sich aus mehreren internen Vorgängen beim Speichern eines Satzes
ergeben. Nuetzlich nur, wenn man sich mit den Quellcodes von a99
auskennt. [Verwendung in abasew.cpp mit dem Namen "slogfile"]
[Die Funktion ist seitdem im regulaeren Programm a99 enthalten.]
Mehr in einer Listenmail:
http://sunny5.biblio.etc.tu-bs.de/pipermail/allegro/2013-February/036790.html
allegro.exe und opac.exe
------------------------
Bis jetzt war allegro.exe identisch mit a99.exe und opac.exe mit
alcarta.exe.
Jetzt sind allegro.exe und opac.exe kleine Hilfsprogramme, die
jeweils das betr. "richtige" Programm starten.
Beide existieren nur, um dem Nutzer entgegenzukommen, der intuitiv
das Richtige zu tun gedenkt, ohne irgendwelche Lektüre. Ob ihm das
viel hilft, sei dahingestellt.
Mehr Informationen über die Mailingliste Allegro