Datei im Format Ebcdic mit Python editieren
Warum sollte man eine Textdatei in dem Format der Großrechner vorhalten?
Langlebige Verarbeitungsprozesse gerade in Bereichen, in denen es um eine Beständigkeit geht, verwenden noch Großrechner. Jetzt im Jahre 2021 hat sich diese inzwischen stark reduziert, aber es gibt sie eben immer noch und wenn man auf solche Dateien stößt dann wird es problematisch, da diese nicht in einem „normalen“ Texteditor angezeigt werden können.
Es gibt natürlich spezielle Editoren, aber für den konkreten Fall ging es vor allem darum Inhalte zu prüfen und ggf. zu ändern.
Python ist das..
… erste, was sich als Lösung anbot.
Mit
py -m pip install ebcdic
wird das Ebcdic Paket installiert.
Datei im Format Ebcdic mit Python editieren
import ebcdic g=u' BOISE ID' print (g.encode('cp500').decode('latin-1'))
Was ist eine VLI?
Eine VLI ist eine Datei die Parameter enthält, um ein Computerprogramm zu starten. VLI bedeutet Vorlaufinformation.
Im konkreten Fall hat(te) die VLI stets exakt 80 Zeichen, sie liegt meist aber nicht immer im Ebcdic Format vor.
Nehmen wir mal an, man möchte die exakte Menge an abgefülltem Heizöl für den 07.09.2020 zwischen 9-15.00Uhr wissen, falls man eine Abfüllanlage administriert. Vorliegend wäre ein Programm, welches für seine Berechnungen diese Parameter benötigt oder sie nutzen kann.
In einer Shell oder Batch, würde man diese als Parameter zum Programmnamen aufrufen können.
Eine VLI ist ähnlich einer Art Environment Datei, mit der man z.B. einen Applikationsserver startet und mit der man die Werte der jeweiligen Instanz festlegt.
Allerdings primitiver, was absolut nicht abwertend gemeint ist.
Für das Beispiel kann ich festlegen, dass das Programm entweder die Gesamtmenge ausgibt oder eine
Mengenbeschränkung erfährt.
So könnte der Inhalt z.B. so aussehen.
2020070909000020200709150000
Ich habe je 14 Zeichen/Zahlen, um die Anfang und Endzeit zu berechnen. Das sind natürlich keine 80 Zeichen, aber es geht auch nur um die Darstellung einer konkreten Anwendungsmöglichkeit.
Das eigentliche Programm macht immer das gleiche nur die Parameter können dies beeinflussen. Man kann natürlich daran sehen, dass es relativ überschaubar ist, wenn man sich zyklische Auswertungen berechnen lassen möchte.
Ich kann das eigentliche Programm nicht ändern, das ist eine BlackBox. Aber ein einfaches Python Script kann die VLI dynamisch anpassen und das Hauptprogramm triggern.
.. und so kann ich doch verhältnismäßig einfach eine Monatsauswertung erstellen. Die Auswertung ist beliebig dynamisierbar, so dass komplette Statistiken erstellt werden können.
Datei im Format Ebcdic mit Python editieren
Datei im Format Ebcdic mit Python editieren