[Allegro] update mit acon

Thomas Berger ThB at Gymel.com
Do Apr 9 15:40:18 CEST 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Lieber Herr Eversberg, liebe Liste,

nachdem ich mit update.exe momentan nicht weiterkomme, versuche
ich es mit acon + update.job: Die Stellen, an denen man eine
Manipulation oder Parameterdatei hinzuschalten kann, sind ja markiert:

Allgemein:

Es ist leicht, einen Schalter -e zu ergaenzen mit Parametername/Ausgabedatei.

UPDATE.EXE kannte den Hauptteil der Parameterdatei (der null oder zwei
mal durchlaufen wurde) sowie den GM-Abschnitt (der bei Neusaetzen aber
z.B. nicht durchlaufen wurde). Das war alles sehr knifflig.
Betrachtet man die markierten Stellen in update.job, fehlt eigentlich
nur noch eine Konvention fuer die Variable und ihren Inhalt (entsprechend
den verschiedenen moeglichen Zustaenden), um sehr feine Einstellungen
fuer Vor- und Nachbehandlung von Saetzen zu erreichen (dazu noch eine
Konvention fuer "Abbruch", mit der die Parameterdatei die Weiterverarbeitung
des aktuellen Satzes stoppen kann).

Schoen waere es natuerlich, nicht nur Parameter, sondern auch Flexe
zur Manipulation heranziehen zu koennen. Wegen der Inflexibilitaet
von "include" geht das nicht in update.job, man kann die Angelegenheit
allerdings "umstuelpen", also einen Job als "Wrapper" aufrufen, der
update.job per Include hereinholt und Sprungmarken fuer die den
Zustaenden entsprechenden Flex-Unterprogramme bereitstellt. Dumm
nur, dass Nichtexistenz einer Sprungmarke nicht testbar ist und
beim "perform" zum Abbruch eines Flexes fuehrt...

Die markierten Stellen sind:

- - Satz aus Update-Datei eingelesen

- - vorhandener Satz wurde aus der Datenbank geladen

- - unmittelbar vor dem Speichern eines zu ersetzenden Satzes

- - Satz wurde in DB nicht gefunden

- - Satz wurde in DB mehrfach gefunden

- - Satz wurde aufgrund des Modus "abgeschmettert"


Wuenschenswert waere nach "put" Zugriff auf die diagnostischen
Informationen zu haben, wie sie UPDATE.EXE zeigt: Wurde der
Satz (von wo nach wo) umgespeichert, wieviele Schluessel wurden
geaendert: Hier muesste der Osterhase wohl noch ein weitereren
cstring spendieren.

Was in update.job noch fehlt, ist die Fleissarbeit, diverse
Zaehler fuer die Statistik mitzufuehren und abschliessend
auszugeben.



Spezielle Anmerkungen:


Die Flex-Dokumentation raet dazu, nach jedem "put" ein "if not ok write"
zu programmieren...

var p      wertet immer noch dumpf den Schluessel bei Sprungmarke #-@
    aus, der ja im allgemeinen nicht der Primaerschluessel ist, a99
    wurde das schon vor Jahren abgewoehnt. "set p" scheint nicht
    implementiert.

copy obj   liefert laestige Meldungen "File not Found" auf STDERR

FATAL:
"put" produziert leider jeden ersetzten Satz als Neusatz, zumindest bei
   Modus -fm10 und -fm30 (andere nicht getestet): In[ter]ferieren hier
   die "copy obj" mit der / die Magie von "copy" auf folgendes "put"?
Aha: Der Fehler ist in update.job: Es darf nicht "get edit" heissen,
sondern "get edit first" ist zwingend!


viele Gruesse
Thomas Berger



-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3-nr1 (Windows XP)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iQCVAwUBSd36wmITJZieluOzAQLr0wP+JWmLSQkfYZxN75QXb4eKWTT7y+aVw0K/
130XTAjUdCmKMB5UFnjGYcaqh3iNy/RQIuZvN5F4yBs046AhJrBHwf4d8prts+VM
PUvaDIQC+oiDpMJNXVqkDLhsXWMZ9cHxTh6L3qJiBWNjXPC0mNGZHDJ2WV2SdsuO
k7e6uR4qucA=
=LDNR
-----END PGP SIGNATURE-----



Mehr Informationen über die Mailingliste Allegro