Trick 46: Alle #nn-Felder durcharbeiten
            Ohne zu wissen, wiviele und welche es gibt

Aufgabe: Alle Felder, deren Nummer mit #nn anfängt, durcharbeiten.

Warum? Manchmal weiß man z.B. nicht, in welchem von evtl. mehreren
Mehrfachfeldern eine bestimmte Angabe steht. Oder man will die Inhalte
aller dieser Felder in eine Datei schreiben.

Lösung 1
========

Man nimmt sich hintereinander alle Felder vor und prüft dann nur
diejenigen, deren Nummer mit nn anfängt.
Dazu dienlich sind die internen Sondervariablen k_1 und k_2:
k_1 = Erstes Datenfeld des aktuellen Satzes, incl. der Feldnummer
k_2 = nächstes Feld, "" wenn es keins mehr gibt

Damit sieht die Lösung so aus:
  Gewünschte Nummer in #uxx vorgeben
#uxx 30
perf abarbeitung
jump rest
  Hierher wird aus dem UP gesprungen:
:aktion
  Feldinhalt jetzt in iV, incl. Feldnummer!
  ... irgendwelche Aktionen mit dem Inhalt
  zurück in das UP!
jump weiter
:rest
  ...
end

  Unterprog., um das man sich nicht kuemmern muss.
  Es funktioniert mit jeder Konfiguration.
:abarbeitung
var 34 #uxx 'zz' 34
ins #uxy
var 34 #uxx 34
ins #uxx
var k_1
:loop
if >#uxx if <#uxy jump aktion
:weiter
var k_2
if not "" jump loop
return


Im Abschnitt :aktion  hat man den gesamten Feldinhalt incl. der
Nummer in der iV. Daher kann man z.B. schreiben

ins #uxz
  .. irgendwelche Aenderungen an #uxz
var "#" #uxz
ins
jump weiter

Dadurch kann man also gezielt die einzelnen Feldinhalte auch
modifizieren.

Und noch ein Vorteil:
Statt  #uxx 30  kann man auch schreiben  #uxx 3
Dann werden alle Felder bearbeitet, die mit #3 beginnen!!!

  ===========================================================

Lösung 2  (H. Allers)
========
Man bastelt alle in Frage kommenden Feldnummern nacheinander
in der iV zusammen und läßt sich mit erneutem "var" den Inhalt
geben (wenn es denn einen gibt). Das ist besonders trick- und
damit lehrreich, aber ansonsten hat es keine Vorteile gegenüber
Lösung 1, auch schneller ist es wohl kaum:


#uxx "#30"
Z=31
:anfang
  Es beginnt mit 32 = Spatium
Z+1
var Z
  problematische Folgezeichen uebergehen: $ : ( .
if =36 jump anfang
if =58 jump anfang
if =40 jump anfang
if =46 jump anfang
if >122 end
var #uxx ' ' Z
  in iV steht jetzt z.B.  #30 65
var
  und jetzt: #30A
ins #ux2
var   // #ux2 ist Kategoriebezeichnung
  und jetzt der Inhalt von #30A - das ist der Haupttrick
if not "" perf aktion
jump anfang

  Was will man machen mit dem Inhalt?
:aktion
ins #ux1   // #ux1 ist aktueller Kategorieninhalt
var "Mit >>" #ux2 #ux1 "<< machen, was man will"
mes
return