Ich muss Dateien direkt von einem Mainframe aus bearbeiten. Der Text würde in EBCDIC kodiert. Die Daten können binäre und gepackte Dezimalfelder enthalten. Ich weiß, dass ich mit den Daten umgehen kann. Ich versuche, die Konvertierung(en) zu vermeiden. (Und das Problem, jedes Feld basierend auf Text oder Binär zu konvertieren). Ich bin mit Mainframe-, USS- und CentOS-Systemen vertraut. Was ich tun möchte, ist, CentOS auf reines EBCDIC umzustellen. Eine Suche im Internet und bei StackExchange hat sehr wenig ergeben.
Ich habe einen Artikel gesehen, in dem Sammyrulez „... erfolgreich EBCDIC-Unterstützung zu einer CentOS-Box hinzugefügt hat, indem er Sprache und Kodierung zu /etc/i18n/sysconfig hinzugefügt hat.“
Es scheint, als ob da noch mehr dahinter stecken müsste.
Ich plane, COBOL über GCC oder ein anderes Produkt zu verwenden, das am besten funktioniert. (eine Hürde nach der anderen)
Hat das schon jemand durchgemacht?
Antwort1
Nein, es wäre unmöglich, das gesamte System in EBCDIC zum Laufen zu bringen. Dazu müssten alle Programme neu kompiliert und der Quellcode einiger Programme geändert werden (viele Programme gehen von Annahmen aus wie „ASCII-Großbuchstaben sind genau die Zeichen zwischen A
und Z
“).
Sie können bestimmte Programme mit EBCDIC arbeiten lassen. Nicht viele Programme unterstützen es – es ist heutzutage eher eine Nischenanwendung. Das Programm dd
kann zwischen ASCII und EBCDIC (zumindest eine Variante von EBCDIC) konvertieren, konvertiert jedoch seine gesamte Eingabe, nicht ausgewählte Felder. Bei gemischten Daten wie Ihren ist es am besten, sorgfältig zu programmieren und die EBCDIC-Felder in ASCII und zurück zu konvertieren, wenn Sie sie als Text interpretieren müssen.
Antwort2
Wie Giles sagte: Nein. Aber es gibt Tools, die Sie möglicherweise für die Arbeit mit EBCDIC verwenden können. Sie können den Standard-Linux/Unix-Toolset nicht für diese Dateien verwenden.
Außerdem könnten beim Übertragen von Mainframe-VB-Dateien Probleme auftreten (nicht alle Dateiübertragungsprogramme können Mainframe-VB-Dateien verarbeiten).
Viele Java-Programme (zBJBearbeiten) kann EBCDIC verarbeiten (CP037 oder IBM037 ist US Ebcdic), aber die meisten verarbeiten nichtFeste BreiteoderVBauf dem Mainframe verwendete Dateistrukturen.
Aus der ErinnerungGNU Cobol(+ viele andere Cobol-Compiler) haben Methoden zum Umgang mit EBCDIC-Dateien. GNU-Cobol hat auch einen Mainframe-Kompatibilitätsmodus, der Mainframe-Binärgrößen verwendet. Einige Cobol-Anbieter (Microfocus) bieten intelligente Cobol-Cobol-Konvertierungsprogramme an, die eine Mainframe-Cobol-Datei in ihr eigenes Format konvertieren. Offensichtlich sind Neudefinitionen ein großes Problem.
Unverhohlene Werbung für meine eigene Software: DieDatensatzeditorkann Mainframe-Dateien in den Formaten Fixed-Width/VB mithilfe eines Cobol Copybooks bearbeiten/aktualisieren. Es verfügt auch über ein Cobol-to-Cobol-Dienstprogramm, das versucht, einfache Mainframe-Ebcidic-Dateien in eine äquivalente Gnu-Cobol-ASCII-Datei zu konvertieren. Auch hier sind ReDefines ein großes Problem.