[Allegro] Import.exe: Vergleichstest R jenseits Feldende

Thomas Berger ThB at Gymel.com
So Dez 7 17:49:25 CET 2014


Lieber Herr Eversberg,

ein MAB-Datensatz enthaelt

...
030 |z1dc||z
037bger
...

und eine Importparameterdatei

#513
s 0 "037b"
w " "              % Umsetzung erfolgt spaeter, daher bleiben Trennzeichen erst
einmal erhalten
m"x"              % KOBV liefert illegalerweise(?) Mehrfachfeld mit gleichem Typ

...

#304               Einheitssachtitel FN
s 0 "030 "
l 0
R 12 "4"           Ansetzung nach EST
(
s 0 "304"
}1
w " "
x
)


Hierbei crasht import.exe seit V32.06 bei diesem Datensatz. Mit V32.05
gab es auch einen Crash, im Test allerdings erst am Ende der Verarbeitung,
zwei Datensaetze spaeter. Mit Versionen vor V32.05 gibt es keinen Crash,
ich habe allerdings nicht auf Korrektheit geprueft.

~Anscheinend~ bemerkt "R 12" nicht, dass das Feld nur 8 Zeichen lang
ist *und* das 12. Zeichen ist ausgerechnet das durch m"x" ungueltig
gemachte "b" von 037b im Folgefeld: Erst die Kombination kitzelt das
Problem hervor.

(Position 12 in MAB 030 ist der Haupteintragungstyp, in Bandauffuehrungen
gibt es den aber nicht und das Feld darf kuerzer sein. Ich habe keine
Ahnung, warum das nie vorher ein Problem war, evtl. ist in Bandauffuehrungen
die Angabe eines Sprachcodes selten...)

Workaround ist, nach 's 0 "030 "' (vor "l 0") zwei Zeilen einzufuegen,

} 12
{ 12

(die Importsprache kennt keinen Test auf Feldlaenge, allerdings fuehrt
der Versuch, den Anfangszeiger ueber das Feldende hinaus zu verschieben,
korrekterweise zum Abbruch der Verarbeitung des Abschnitts, nur wenn
das Feld lang genug ist, geht es weiter und "{ 12" stellt die Ausgangs-
situation wieder her)

viele Gruesse
Thomas Berger



Mehr Informationen über die Mailingliste Allegro