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