[Allegro] Wieder mal: #nn. ++ p>X m>Y mit Flex-Mitteln
Allers Heinrich
Allers at goethe.de
Mo Jun 4 12:05:48 CEST 2007
Liebe Frau Koczian:
> ...
> Können Sie Gedanken lesen? Bei mir _ist_ es die #30 ...
:-))
Erstens: zu Anfang kann's noch kürzer sein, nämlich
var "96"\=
:anfang\+1
var Z\if >122 end
statt
var "96"\=
:anfang\var Z\+1
var Z\if >122 end
> ... Warum es funktioniert, ist mir allerdings bisher
> noch unklar. ....
Zugegeben, das Verfahren verdient es, etwas besser kommentiert und dadurch transparenter zu werden; ich versuch's mal:
// Kommentierung erfolgt bezogen auf den allerersten
// Durchlauf der Schleife ':anfang\...\jump anfang':
var "96"\= // internen Zähler mit 96 vorbesetzen
:anfang\+1
// Jetzt hat interner Zähler Z den Wert 97:
// 97 ist der ASCII-Code des Zeichens 'a'!
var Z\if >122 end //122 ist Ascii-Code von 'z'
var ' "#30" ' Z
// Jetzt stehen in der iV genau die
// 8 Zeichen: "#30" 97
// 8 Zeichen - d.h. auch die Hochkommata stehen so drin in der iV!
var // Jetzt stehen die 4 Zeichen #30a in der iV
ins #ux2 // Dieser Befehl ist nicht essentiell!
// Er dient nur zum Festhalten der Kategoriebezeichnung,
// um sie bei der Verarbeitung im UP aktion zur Verfügung
// zu haben.
var // Da derzeit der Inhalt der iV #30a ist, ist dieser Befehl
// äquivalent zu 'var #30a', d.h. hinterher steckt der Inhalt von
// #30a in der iV.
if not "" perf aktion // Mache UP aktion nur, wenn #30a nicht leer ist!
jump anfang
:aktion\ins #ux1 // #ux1 ist aktueller Kategorieninhalt
var "Mit >>" #ux2 #ux1 "<< machen, was man will"\mes
return
> Mit 32..127 (oder 255?) könnte man Grundkategorie und _alle_ legalen
> Wiederholungszeichen erfassen, das passt dann insbesondere auch, wenn
> M2 in der Konfiguration
> steht - wie im Standard vorgesehen.
###
Unabhängig von der eigentlichen Aufgabe bleibt für mich interessant, warum das Verfahren zusammenbricht, wenn man
var ' "#30" ' Z ersetzt durch var '"#30" ' Z ersetzt. (Dann steht nämlich in der iV im ersten Schleifendurchlauf nicht
"#30" 97, sondern nur #30" 97).
Mit besten Grüßen:
Heinrich Allers
Goethe-Institut, Ber. 532/EDV * Dachauer Str. 122 * D-80637 München
Tel.: ++89 / 15921 471 * Telefax: ++89 / 15921 435 * allers at goethe.de
* Für eine nachhaltige Wirtschaftsordnung an Stelle der Marktwirtschaft!
* ¡En favor de una economía sostenible en lugar de la economía de mercado!
Mehr Informationen über die Mailingliste Allegro