MAB-Bandformate
thomas at mpim-bonn.mpg.de
thomas at mpim-bonn.mpg.de
So Mär 17 12:18:35 CET 1996
Liebe AllegrologInnen,
nicht nur wegen Herrn Kaloks Nachfrage sind Fremddatenimporte und
die damit verbundenen Konversinsfragen aktueller denn je.
In das Upload-Verzeichnis des Braunschweiger Fileserver habe ich
ein Archiv MABTAPE.LZH gelegt, das baukastenartig einige Tools
und Tabellen fuer die Verarbeitung von "MAB" (DB-MAB?) enthaelt.
Hier ein Auszug aus der README-Datei:
MAB-Datenverarbeitung
=====================
MAB existiert zur Zeit in mindestens vier Spielarten, naemlich
MAB1 und MAB2, jeweils als Band- und Diskettenversion. Ausserdem
ist (theoretisch fuer jeden Datensatz) ein Wechsel zwischen
verschiedenen Zeichensaetzen moeglich.
MAB1-Banddaten kommen in einem EBCDIC-Dialekt codiert (der
sogenannte MAB-Zeichensatz), haben 120 Bytes feste Felder,
zumindest bei GKD-Daten vorangestellt (meist) vier
undokumentierte Zeichen, dahinter ein Directory. Indikatoren
sind den variablen Feldern vorangestellt. Satzende und Feldende
sind jeweils einzelne Steuerzeichen.
MAB1-Diskettendaten kommen im Zeichensatz PC-850 und haben 64
Byte feste Felder ohne Directory. Indikatoren sind den variablen
Feldern nachgestellt. Satzanfang ist die Zeichenfolge "### ",
Feldende ein Zeilenvorschub, Satzende eine Leerzeile.
MAB2 unterscheidet sich von MAB1 einerseits in den
Feldbezeichnungen (GKD anscheinend unveraendert, SWD im
wesentlichen unveraendert), ansonsten gilt:
- MAB2 Band- und Diskettenformat haben jeweils 24 Byte feste
Felder, kein Directory, Indikatoren sind den variablen Feldern
nachgestellt.
- MAB2 Banddaten kommen in einem Dialekt von ISO 646 bzw.
5426-1983. Satzende und Feldende sind jeweils einzelne
Steuerzeichen.
- MAB2 Diskettendaten kommen im Zeichensatz PC 850. Satzanfang
ist die Zeichenfolge "### ", Feldende ein Zeilenvorschub,
Satzende eine Leerzeile.
Fuer Importe bzw. auch Kontrolle am besten geeignet halte ich
das "kanonische Pseudo-MAB" (Name von mir): MAB2-Zeichensatz oder
PC-850, Feldbezeichnungen nicht geaendert, Indikatoren nach
Feldbezeichnungen, Satz- und Feltrennungen ebenfalls wie
MAB-Diskette. Es handelt sich also um MAB1 bzw. MAB2-Diskette,
jedoch eventuell mit dem "falschen" Zeichensatz und falscher
Anzahl fester Felder.
MAB-Banddaten aus diesem Zwischenformat lassen sich im Prinzip
mit denselben Allegro-Importparameterdateien verarbeiten wie
MAB-Diskettendaten. Folgende Einschraenkungen gelten dabei aber:
- Die Zeichenumwandlung muss je nach Ursprung (Band bzw.
Diskette) von ISO 5426-1983 bzw. PC850 in den Zielzeichensatz
vorgenommen werden. (Durch Einbinden von Konversionstabellen
in die Importparameterdatei)
- Nutzung von Festen Feldern, die in MAB1-Band vorkommen, in
MAB2-Band aber nicht, ist nicht moeglich. (Abhilfe: Eingriff in
MABTAP12.PL)
Ein PERL-Skript konvertiert in das Zwischenformat:
MABTAP12.PL Umwandlung von MAB1-Banddaten in Pseudo-MAB2.
MAB1-Feldnummern bleiben erhalten, Feste Felder werden jedoch
auf MAB2 gekappt.
Der Zeichensatz wird von MAB1-Band auf MAB2-Band geaendert,
Satz- und Feldendezeichen aber auf MAB2-Diskette.
(GKD-spezifische?) undokumentierte Binaerdaten werden
herausgenommen.
Einziger Strukturunterschied: Datei beginnt mit extra CR/LF
(MAB: endet)
Aufruf: perl mabtap12.pl file_in > file_out
Dabei ist file_in der Name der Datei mit MAB1-Daten
Die Ausgabe wird nach file_out umgeleitet (sonst: STDOUT)
Beispiel: perl mabtap12.pl .\gkddemo\dat3 > dat3.mab
um die Datei dat3 in die Datei dat3.mab umzuwandeln
Zeichenumwandlungstabellen vom Zwischenformat in vernuenftigeres:
a) MAB2-850.CNV Zeichenkonvertierung MAB2-Band (ISO 5426-1983)
in den MAB-Diskettenzeichensatz (PC850)
Einzubinden in eine Allegro-Importparameterdatei
Allerdings wird der Verweisungspfeil nicht auf EOF umgesetzt,
sondern auf "->".
b) MAB2-OW.CNV Zeichenkonvertierung MAB2-Band (ISO 5426-1983)
in den Allegro-Ostwest Zeichensatz auf Basis von
PC437
Einzubinden in eine Allegro-Importparameterdatei
c) 850-OW.APT Zeichenkonvertierung von MAB-Diskettendaten
(PC850) in den Ostwest-Zeichensatz auf Basis von
PC437
Einzubinden in die dem Import nachgeschaltete Allegro-
Exportparameterdatei
Die Zeichenkonvertierungen sind noch nicht ausgiebig genug
getestet. Kommentare und Fehlermeldungen sind erbeten.
Thomas Berger
Mehr Informationen über die Mailingliste Allegro