[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