[Allegro] leider ein oder zwei weitere kleinere fehlerchens in der a-mab2.apr gefunden

Thomas Berger ThB at Gymel.com
Do Feb 26 11:24:07 CET 2015


Am 26.02.2015 um 10:29 schrieb Klaus Lehmann:
>  
> Guten Tag Herr Eversberg,
> danke für Ihre Nachricht.
> Am Mittwoch, 25. Februar 2015 um 07:51 schrieben Sie.
> Ihre Nachricht finden Sie am Ende dieser eMail.
> 
>> Am 24.02.2015 um 17:14 schrieb Klaus Lehmann:
> 
> 
>>>
>>> ...  funktioniert, setzt aber das
>>> zeilenende-zeichen hex1e in fast allen fällen DOPPELT rein.
> 
> 
> 
>> In was für Fällen nicht?
> 
> IN  diesem  Block  und  dem  darauffolgenden  Block #(K ist ein selten
> auftretender  "fehler" drin, der KEIN datenfeldabschlusszeichen erzeugt,
> wenn  eine  bestimmte  Situation auftritt (welche das genau ist, weiss
> ich  -mangels  klugheit-  nicht, wie es andere auch festgestellt haben
> ;-)    ).
> Diesem  "selten auftretenden Fehler" kann ich entfliehen, wenn ich die
> Zeile einfüge, die unten mit ***** beginnt!
> Leider  werden  damit  dann  fast alle Feldendezeichen verdoppelt, was
> NICHT schlimm  ist,  weil  ich  dann  nach  beendigung  des exports die
> datenbank   filtere   (z.b.   mit   sed   oder  perl),  d.h.  aus  ZWEI
> feldendekennzeichen   EIN   feldendekennzeichen  mache.  das  ist  ein
> Quickie,   die  in  der  derzeitigen  allegro-klimatischen  Lage  erst
> mal  eine halbwegs befriedigende Lösung bringt.
> 
> 
> #(N    Namen aufbereiten
> #cc dan aan #zz 0        gesamtes Namensfeld in #uan speichern
> #-Ž
> #unn 0 #zz 0   KatNr (100, 104, 108 ...)
> #uin 0 #zz 0   indikator (wurde oben gesetzt)
> #unn x"+1" e"." =nn #zz 0    erh”hen  (101, 105, ... fr Verw.Formen)
> #uan e";" F" " e" = " #zz 0
> #cc +N i2,1 " ª[Hrsg.]ª!" e"!" #zz 0
> #cc +N i2,2 " ª[Mitverf.]ª!" e"!" #zz 0
> #cc +N i2,3 " ª[Bearb.]ª!" e"!" #zz 0
> #-N
> *****#t{ C &0 }    Feldende
> #uan e";" F" " dvw avw    Kat.-Inhalt  in #uvw zwischenspeichern
> #-P
> #uvw +O b" = " dvw avw #zz 0    sind noch verw.formen da?
> #unn x"+3" e"." =nn #zz 0      katNr um 3 erh”hen (104, 108, 112, ...)
> #uan +Ž b";" f" " dan aan #zz 0    n„chster Name kommt dran
> #)N
> #-O   ja, wir haben Verw.Formen: abarbeiten (jeweils 101, 105, ...)
> #unn P" " #zz 0
> #uvw e" = "
> #+P    Schleife l„uft, bis #uvw leer ist
> #)N   dann UP zuende

Naja, das sind ja Situationen, wo die einzigen Zeilen ohne "#zz 0"
keine Ausgabe geliefert haben, also entweder

#uan e";" F" " dvw avw

weil #uan leer ist oder mit optionalen Leerzeichen und dann ";" beginnt

dann ist aber vorher bei
#uan e";" F" " e" = " #zz 0
auch schon nichts ausgegeben worden. d.h. es steht da Feldnummer
und optionale Funktionsbezeichnung, sonst nichts. Reparatur
muss also vorher ansetzen, denn das muss ja alles unterdrueckt
werden und nicht nur durch Ergaenzen eines Feldendes verschoent.
(der Unterfall #uan leer sollte eigentlich nicht vorkommen, denn
das wuerde ein leeres #cc als Ursache haben...)

Plausible Ursache also sind doppelte ";" im Feld (ggfls. mit
Spatien dazwischen), Aenderung von
#uan +Ž b";" f" " dan aan #zz 0    n„chster Name kommt dran
auf
#uan +Ž b";" f"; " dan aan #zz 0    n„chster Name kommt dran
kann da schon Wunder wirken, besser ist natuerlich
#uan +Ž dan b";" f" ;" aan #zz 0    n„chster Name kommt dran
damit #uan stets geloescht wird.

 %--

oder

#uvw e" = "

hat nichts gliefert, weil #uyw leer ist oder mit " = " beginnt:
Das setzt aber voraus, dass #uan vorher " =  = " enthalten hat,
also ein Doppelleerzeichen aus #cc, das sollte nie vorkommen.
Effekt ist ebenfalls wieder eine nackte Feldnummer in den Daten,
die ebenfalls zu unterdruecken waere...

Die Zeile
#uan e";" F" " dvw avw    Kat.-Inhalt  in #uvw zwischenspeichern
sollte in
#uan dvw e";" F" " avw    Kat.-Inhalt  in #uvw zwischenspeichern
umformuliert werden, damit nicht der naechste UP-Aufruf auf ein
ungeloeschtes #uvw trifft und es ggfls. nicht selbst besetzt,
eine konkrete Fehlerquelle sehe ich darin aber derzeit nicht,
auch "geerbte" #uvw-Inhalte duerften in Folge nichts ausloesen,
da sie dafuer " = " enthalten muessten und das waere vorher
schon abgebaut worden...

viele Gruesse
Thomas Berger



Mehr Informationen über die Mailingliste Allegro