[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