[Allegro] Vb.257 ergänzt: iV2 auch für a99

Bernhard Eversberg ev at biblio.tu-bs.de
Di Feb 4 08:41:13 CET 2014


Am 03.02.2014 12:48, schrieb Bernhard Eversberg:
> ...  was gebraucht wird, sind
> konstruktive Aussagen. Solche setzen wir um.
>
> Und jetzt lassen Sie uns erstmal das Paket fertigmachen. Für
> ausgewogene Kritik ist dann immer noch Zeit.
>

Wir sind Bergers Hinweis auf die "iV2" nachgegangen. In a99 war dieser
Reservespeicher noch nicht realisiert. Es lag wohl daran, dass die Sache
seinerzeit, im Nov. 2009, in der Hektik des Alltagsgeschaefts wieder
unterging, und der Einbau in a99 seinen Weg auf den Zettel fuer die
naechste Version nicht gefunden hatte.
Wie auch immer, es war kein grosses Projekt, sondern leicht und
schnell umzusetzen. Folgender Abschnitt wird der Vb.257 noch
angefuegt:
(Und heute werden wir damit noch einige Tests anstellen, bevor wir
die V34.0 dann morgen zusammenschnueren. Wir wollen u.a. die FLEXe
dnb.flx und srugbv.flx mit der neuen Option umarbeiten. Das
bereitgelegte a99 ist aber zum Testen dennoch zu empfehlen.)


FLEX: iV2 jetzt auch in a99
---------------------------
In Vb.223 war berichtet worden, dass acon eine "zweite interne Variable"
habe, kurz iV2, die man mit  ins $  als Kopie der aktuellen iV anlegen
koenne und spaeter dann mit  var $  wieder in die normale iV kopieren.
Zudem wird mit  get I<url>  der aus dem Internet geholte Inhalt auch
sofort automatisch in die iV2 kopiert. Was sehr nuetzlich sein kann,
wenn dieser Inhalt z.B. ein Datensatz ist, den man danach mittels
var ... (...)  zerlegen will. Dasselbe passiert mit  var F<dateinname>.
Man schreibt also z.B.
var $ (b"A" e"Z")
um aus der iV2 den Inhalt zwischen A und Z zu extrahieren, d.h. in
die normale iV zu kopieren. Der iV2-Inhalt aendert sich dabei nicht,
d.h. man kann beliebig viele solche Befehle aufeinander folgen lassen.
Dies geht intern schneller als fuer den Zweck eine $-Variable zu
nehmen oder eine #u-Variable.
Zudem ist die maximale Laenge der iV2 wie auch der iV mit 4 MB viel
groesser als die maximal 64K einer $-Variablen.  (In acon sind es
nur jeweils 2MB, das sollte evtl. mal angeglichen werden.)
Kleines Beispiel:
   x var Fcat.api\ansi\show IV
Was erscheint im Anzeigefeld? Der komplette Inhalt der Datei  cat.api,
umcodiert in ANSI, damit alles korrekt zu lesen ist. Na gut, einfacher
geht das mit  h cat.api,  so aber kann man nun z.B. schreiben:
   var $ (b"pn=" e"^M")\mes
um sich die Zeile zeigen zu lassen, die mit  pn=  beginnt.

Diese brauchbare Sache gibt es jetzt auch in a99, was laengst haette
realisiert werden sollen, aber immer wieder vergessen wurde.
Der iV2-Inhalt bleibt in a99 erhalten ueber das Ende des FLEX hinaus
bis zum Ende der Laufzeit oder zum naechsten Befehl  ins $.! (In
acon geht das nicht, denn am Ende eines Jobs beendet sich acon.)
Alle Doku-Texte, in denen die iV2 relevant ist, wurden aktualisiert.





Mehr Informationen über die Mailingliste Allegro