[Allegro] Trick 80 : Universalwandler, .ald -> .adt <-> .alg

Bernhard Eversberg b.eversberg at tu-braunschweig.de
Fr Okt 30 11:42:41 CET 2015


Trick 80 : Universalwandler
---------------------------                                 2015-06-05

Jeder kennt solche Situationen: Man will schnell mal eben seine Daten-
bankdatei cat_1.ald in eine lesbare Textdatei des Externtyps .adt
verwandeln, oder eine .adt in eine .alg oder umgekehrt.
Und obendrein: Im selben Aufwasch sollen die Zeichen umcodiert werden
von ASCII in ANSI oder von UTF-8 in ASCII oder ...

Kalter Kaffee, sagen alte Hasen, das geht ruckzuck mit 'ner kleinen
Parameterdatei, i-1.apr oder e-1.apr, plus einer der Codetabellen:
ad-aw.apt, utf-aw.apt usw.

Schon richtig, aber manch zeitgenössischer Admin ist mit diesem Rat
nicht so gut bedient. Er wünscht sich ein Konsoltool, mit dem die
Tat auf einen schlichten Befehl reduziert wird. Und der a99-Nutzer
wünscht sich einen FLEX, der dasselbe macht.

Diesen FLEX gibt es jetzt:  dawa.flx
Und gibt's auch dawa.job? Nein, aber acon kann auch dawa.flx
ausführen, der FLEX ist acon-fähig.
Das gehört eben zum Trick: acon ist nicht auf den Dateityp .job
angewiesen, sondern acon -jabc.xyz ... geht. Sofort kommt die Frage:
geht auch  X abc.job? Im Prinzip ja, aber in beiden Fällen muß der
FLEX bzw. der Job so geschrieben sein, daß acon bzw. a99 nirgends
stolpert.
"Moment", wirft gleich einer ein, "wenn aber Befehle vorkommen, die nur
a99 versteht, steigt da nicht acon aus, und umgekehrt?" Ja, aber nur,
wenn acon bzw. a99 die Stelle bei der Ausführung erreicht! Denn beide
lesen das Skript ein, ohne beim Einlesen schon zu prüfen. Erst bei
der Ausführung knirscht's dann an der Stelle, aber das kann man
verhüten, indem man im FLEX testet, ob die Ausführung gerade von
a99 gemacht wird oder von acon, z.B. nach diesem Muster:

var m
if "ac" jump acob
... Hier weiter mit Befehen für a99
jump weiter
:acob
... Hier die entsprechenden Befehle für acon
:weiter

Wichtig ist nur: Kommentarzeilen mit // einleiten, sonst strauchelt
acon, weil es Spatien am Zeilenanfang NICHT als Kommentar versteht.

Nun zur eigentlichen Aufgabe:
Sowohl acon wie a99 können Dateien der drei Typen .ald, .alg und .adt
einlesen, Satz für Satz, beide können auch exportieren. Damit ist das
Ganze im Prinzip ein Klacks.
Wozu aber viele Worte an dieser Stelle, besser gleich das Ding
abholen mit
   X getfile dawa.flx
Es stehen ausreichend Kommentare drin.
Komplett durchgetestet und perfektioniert ist es noch nicht, es
müssen auch noch ein paar von den Umwandlungstabellen bereitgestellt
werden, z.B.  utf-aw.apt, aber das kommt alles in die V35.F mit rein.
Auch der Nutzungskomfort wird sich noch erhöhen lassen, wie immer in
solchen Fällen.





Mehr Informationen über die Mailingliste Allegro