Volt
00000000

Anleitung

Mainframe-Dateien auf dem Mac: Sätze, Copybooks und COBOL

Ein Abzug von z/OS sieht für einen Mac nicht wie eine Textdatei aus: Die Bytes sind EBCDIC, die Zeilen enden mit NEL oder gar nicht, und die Sätze sind achtzig Spalten breit, ohne irgendetwas dazwischen. Hier steht, wie man damit arbeitet.

Warum eine Mainframe-Datei einen gewöhnlichen Editor schlägt

Drei Annahmen, die jeder moderne Editor trifft — und eine Mainframe-Datei bricht alle drei zugleich.

  • Dass die Bytes ASCII oder UTF-8 sind. Sie sind EBCDIC, in einer von zweiundsechzig nationalen Codepages.
  • Dass Zeilen mit 0x0A enden. Sie enden mit NEL, 0x15 — oder gar nicht.
  • Dass die Datei Zeilen hat. Viele Mainframe-Daten sind eine Folge von Sätzen fester Breite, oder Sätze mit ihrer eigenen Länge davor, ohne irgendetwas dazwischen.

Das Ergebnis ist das bekannte: ein Bildschirm voller Satzzeichen mit Akzenten, in einer einzigen Zeile von mehreren Megabyte, in einer Datei, für deren Laden der Editor eine Minute brauchte.

Sätze statt Zeilen

FormatWas in der Datei stehtWas Volt tut
IBM RDW Sätze variabler Länge, jeder mit einem vorangestellten Vier-Byte-Satzdeskriptor, der seine Länge angibt. Keinerlei Abschlusszeichen. Liest die Deskriptorkette, macht beim Öffnen aus jedem Satz eine Zeile und schreibt die Deskriptoren beim Sichern zurück.
Feste 80 Spalten Lochkartenbilder: jeder Satz genau achtzig Zeichen, mit Leerzeichen aufgefüllt, ohne irgendetwas dazwischen aneinandergereiht. Teilt an der Satzlänge und stellt das Auffüllen beim Sichern wieder her — die Datei geht in der Form zurück, in der sie kam.
Feste 132 Spalten Zeilendrucker-Ausgabe, dieselbe Idee in Druckerbreite. Ebenso.
Gar keine Zeilenumbrüche Eine Datei ohne ein einziges 0x0A, die wirklich eine lange Zeile sein kann — oder Sätze. Prüft, ob die Satzstruktur trägt, bevor er entscheidet, statt eines von beidem anzunehmen.

COBOL, und die anderen Sprachen, über die niemand Tutorials schreibt

Volt hebt COBOL hervor (.cob, .cbl, .cpy), zusammen mit den übrigen Sprachen, die Unternehmen am Laufen halten statt im Trend zu liegen: ABAP, PL/SQL, Visual Basic und VBA, Delphi und Object Pascal, Visual FoxPro, Fortran, Ada, SAS, VHDL und X++.

Was sie unterscheidet, ist nicht ihre Grammatik, sondern ihre Kommentare. COBOL, ABAP, FoxPro und SAS behandeln ein Zeichen nur in der ersten Spalte als Kommentar — anderswo ist dasselbe * eine Multiplikation —, und in Visual Basic beginnt der Apostroph, der in den meisten Sprachen einen String einleitet, einen Kommentar. Ein Editor, der das falsch macht, färbt die halbe Datei als Kommentar — genau so übersieht man eine Zeile echten Codes. Die vollständige Liste der Sprachen steht hier.

Copybook und Abzug auf dem Mac

  • Den Abzug öffnen. Ist er EBCDIC, wird er als EBCDIC gelesen, und die Statusleiste nennt die gewählte Codepage und warum.
  • Hat er keine Zeilenumbrüche, werden die Sätze zu Zeilen — RDW an seinen Deskriptoren, feste Breite an ihrer Satzlänge.
  • Das Copybook daneben öffnen; .cpy wird als COBOL hervorgehoben.
  • Die Feldbreiten so angeben, wie das Copybook sie schreibt, und an jeder Grenze erscheint eine Haarlinie — oder als CSV exportieren.
  • Bei Zweifeln an einer Feldgrenze den Hex-Editor nehmen: Offsets, Bytes und die druckbare Spalte nebeneinander.
  • Bearbeiten und in derselben Codepage und demselben Satzformat zurücksichern — oder in UTF-8 mit gewöhnlichen Zeilenenden umwandeln, wenn die Datei in eine moderne Umgebung geht.

Die Größe ist nicht das Hindernis, das sie sonst ist

Mainframe-Abzüge sind selten klein. Eine Datei von 4,23 GB mit 50,4 Millionen Zeilen öffnet in 2 Millisekunden mit ein paar Megabyte Speicher — die Arbeit an Sätzen und Zeichensätzen geschieht also an einer Datei, die schon offen ist, statt nach einer Minute Laden. Mehr zu großen Dateien auf dem Mac.

Fragen

Wie lese ich eine IBM-RDW-Datei auf dem Mac?

In einem Editor, der Satzdeskriptoren versteht. Volt liest die Kette der Vier-Byte-Deskriptoren, macht beim Öffnen aus jedem Satz eine Zeile und schreibt die Deskriptoren beim Sichern zurück — die Datei geht in der Form zurück, in der sie kam.

Und Dateien mit fester Breite von 80 Spalten ohne Zeilenumbrüche?

Sie werden an der Satzlänge geteilt — 80 für Lochkartenbilder, 132 für Druckausgaben —, und das Auffüllen wird beim Sichern wiederhergestellt. Eine Datei ohne 0x0A wird auf Satzstruktur geprüft, statt als sehr lange Zeile angenommen zu werden.

Hebt Volt COBOL hervor?

Ja, für .cob, .cbl, .cpy und .cobol, mit der Regel für Kommentare in der ersten Spalte, die COBOL tatsächlich verwendet. ABAP, PL/SQL, Visual Basic und VBA, Delphi, Visual FoxPro, Fortran, Ada, SAS, VHDL und X++ werden ebenfalls hervorgehoben.

Kann ich einen Mainframe-Abzug in etwas Modernes umwandeln?

Ja. Öffnen Sie ihn in seiner EBCDIC-Codepage und seinem Satzformat und sichern Sie ihn als UTF-8 mit LF; Zeichensatz, Zeilenenden und Satzstruktur werden im selben Durchgang umgesetzt.

Muss ich dazu etwas installieren?

Nein. Volt ist ein Download von 8 MB, in Swift geschrieben — keine Java-Laufzeit, kein Terminalemulator, keine Umwandlungswerkzeuge zum Aneinanderketten.

Probieren Sie es mit Ihrem eigenen Abzug

Volt ist in der kostenlosen Beta. Laden Sie ihn jetzt — ohne Konto, ohne Anmeldung — und probieren Sie ihn an der Datei aus, um die es geht. Jeder Build läuft sieben Tage, und jedes Update gibt weitere sieben.

Volt für Mac laden

macOS 13 oder neuer, Apple Silicon. Etwa 8 MB, signiert und notarisiert. Alle Funktionen · was sich in diesem Build geändert hat.

Verwandte Anleitungen