[Allegro] Re: Abschaltung von o.apt?
Bernhard Eversberg
ev at biblio.tu-bs.de
Mo Nov 26 08:41:58 CET 2007
Betrachten wir die Vorgänge notgedrungen bis ins kleinste Detail.
Dabei wird fast eine neue Fortbildungslektion daraus.
(Bei meiner ersten Antwort waren mir nicht alle Einzelheiten
noch präsent ...)
Die o-Befehle erzeugen intern ZWEI Tabellen, nennen wir sie
ASCIANSI und ANSIASCI. Diese enthalten am Anfang jeweils
die Werte A->A und A->A, es passiert dann scheinbar gar
keine Umwandlung.
Wenn in o.apt steht
Zeile A
o .017 132
dann entstehen daraus 2 Eintraege:
ASCIANSI ANSIASCI
017->132 132->017
Wenn außerdem steht
Zeile B
o .132 228
dann entstehen noch diese zwei Einträge:
132->228 228->132
Beim Einlesen gilt Tabelle ASCIANSI, beim insert gilt aber
Tabelle ANSIASCI.
Beim Einlesen wird ä (132) also nach 228 gewandelt, und dies
beim insert wieder nach 132.
Fehlt Zeile B, bleibt 132 in der iV beim Einlesen stehen,
wegen Zeile A wird daraus beim insert dann 017.
Wichtig ist nun:
Beim "insert" wird genauso verfahren, als wäre der iV-Inhalt
manuell im Schreibfeld eingegeben worden, und dann ist es ja im
ANSI-Code. Deshalb muß zuerst, sind die Eingabedaten ASCII, die
Wandlung in ANSI erfolgen - denn dann wird zurückgewandelt.
Wenn Zeile B fehlt, bleibt beim Einlesen die 132 erhalten,
denn in ASCIANSI steht dann 132->132
Beim "insert" wird deshalb daraus die 17, denn in ANSIASCI
steht wegen Zeile A der Eintrag 132->017.
Ergo:
Zeile A ist ohne Belang, wenn Code 17 nicht verwendet wird.
Zeile B darf nicht fehlen, wenn die Eingabedaten ASCII sind.
Wenn Allers also eine Zeile einsparen will, ohne daß sich das
auswirkt, dann muß es Zeile A sein.
Will Allers alle Umcodiererei umgehen, vereinfacht sich sein FLEX zu
open ein.dat
xport f aus.dat
:anfang
get
if cancel jump ende
wri
wri n
jump anfang
:ende
close
mes Fertig!
D.h. auf Zwischenspeicherung in einer Variablen kann in diesem
Fall ganz einfach verzichtet werden.
Ist Zwischenspeicherung aber notwendig, weil mit dem Text noch
sonstwas zu machen ist, dann $-Variablen statt #u-Variablen
verwenden, die unterliegen nicht dem Umwandlungs-Hokuspokus.
MfG B.E.
Mehr Informationen über die Mailingliste Allegro