[Tustep-Liste] Zeilennummerierung

Paul Sappler paul.sappler at uni-tuebingen.de
Fri Sep 19 11:45:01 CEST 2008


Lieber Herr Trauth, lieber Herr Kollatz,
Herrn Kollatz Lösung Ihrer Preisaufgabe ist preiswürdig.
Wenn das Programm lang aussieht, dann täuscht das, denn
der Rahmen ist ja der mit *koma erzeugte.

Meiner Erinnerung nach arbeitet aber das Satzprogramm so,
daß die Zeilenzählung schon für die Zeile ausgeschaltet
wird, in der &!r. oder &!r- steht, daß also, wenn &!r. in
der Vorgangerzeile von @{ steht, manchmal eine Zeile keine
Zählung bekäme, die sie gut vertrüge. Demnach könnte der
zentrale Teil des Programms so aussehen (nicht probiert):

...
  ACCESS ...
  compile
  SET marker="aus"
  LOOP/999999
  READ/NEXT/EXIT q

  if (marker .eq. "aus") then
    IF (zeile.ct.":@{:") THEN
      SET zeile= CONCAT (zeile,"&!r."), marker ="ein"
      WRITE/UPDATE q
    ENDIF
  else
    IF (zeile.nc.":@{:") then
      SET zeile = CONCAT (zeile,"&!r+"), marker="aus"
      WRITE/UPDATE q
    endif
  endif

  ENDLOOP
  endcompile
  ENDACCESS q

Im Textbeispiel sollten @...@{ nicht fast nur in den Zeilen 4 9
14 19 usw. vorkommen, sondern bunt gemischt sein, sonst sieht man
der Effekt nicht.

Ich betone, daß die Verkürzung nur einer anderen Interpretation
des Satz-Programms geschuldet ist und ich mich nicht an der
Ausschreibung beteilige, zumal ich zu meinem Leidwesen nicht in
Heidelberg dabei sein kann (außerdem schon einmal einen Preis
von Herrn Trauth bekommen habe, wird nicht vergessen).
Herzlich, Paul Sappler



More information about the Tustep-Liste mailing list