[Allegro] HFM: Vervollständigung

Bernhard Eversberg ev at biblio.tu-bs.de
Di Jul 1 08:06:07 CEST 2014


Die Herausgabe einer V34.3 verzögert sich noch ein wenig, weil für
die Hochfrequenz-Mehrfachfelder (HFM) noch Handlungsbedarf bestand.

Was unbedingt noch rein mußte, waren folgende Funktion(alität)en:

o  Anfuegen eines neuen HFM-Felds ans Ende der schon vorhandenen:
    Wenn  #nnn~ xyz  eingegeben wird (direkt oder per insert im FLEX)
    wird die letzte #nnn.zzz gesucht und auf die Zahl dann 1
    aufaddiert, um die nachfolgende HFM-Kennung zu bilden.
    Wenn keine #nnn mit . und Zahl vorkommt, wird auf die alte Weise
    ein neues #nnn-Feld ergaenzt (also z.B. #403, wenn #402 vorkommt)

o  Um mit einem Befehl gleich zwei oder mehr HFM-Felder anzufügen,
    trennt man sie mit einem Zeilenvorschub:
      var "#nnn~ Text1" n "#nnn~ Text2" n ...
      insert
    Fuer acon gilt aber (Grund: Sicherheit gegen "code injection")
    die Schreibweise
      var "#nnn~ Text1;#nnn~ Text2;#..."
      insert
    (Das war schon lange so und klappt auch mit HFM-Feldern)

o  In FLEX geht nicht:  if #nnn.zzz
    Es ergibt sich stets die Bedingung "no", mit "if  #nnn."  aber stets
    "yes", wenn überhaupt irgendein #nnn vorhanden ist.
    Ersatzweise kann man schreiben, wenn man checken will, ob #77.123
    besetzt ist:
    var kr
    var (b"77.123 ")
    if "" mes #77.123 ist nicht besetzt

o  U.U. möchte man mal das erste HFM-Feld von #nnn haben. Aber mit
    "var #nnn."  kriegt man das erste aller #nnn-Felder, nicht das erste
    mit einem Punkt. Dafür gibt es keinen einfachen Befehl.
    Die erste Nummer bei #77 findet man ersatzweise mit diesem Rezept:
      var kr
      var (b"77." e" ")
      ins $n1
      var "_#77." $n1
      var
    In der iV steht dann z.B. 77.8 text, wenn .8 das erste HFM-Feld ist.


Die Programme a99hfm und aconhfm liegen bereit zum Ausprobieren:

   www.allegro-c.de/aktuelle-version/a99hfm.zip

   www.allegro-c.de/aktuelle-version/aconhfm.zip


B.E.



Mehr Informationen über die Mailingliste Allegro