BankOCR

Application Kata „BankOCR“

Schreibe ein Programm, das Kontonummern in ASCII Dateien erkennt.

OCR steht für Optical Character Recognition. Natürlich wäre es etwas viel verlangt, im Rahmen einer Übungsaufgabe eine OCR Software zu schreiben. Doch selbst wenn man die Aufgabe drastisch abspeckt, bleibt sie interessant.

Die einzulesenden ASCII Dateien enthalten Ziffernfolgen, die jeweils in drei Zeilen kodiert sind. Die folgenden Abbildungen zeigen, wie die Ziffern dargestellt werden.

Jede Ziffer ist drei Zeichen breit und drei Zeilen hoch. Aufeinanderfolgende Ziffern werden durch ein Leerzeichen getrennt. Aufeinanderfolgende Zeilen mit Ziffernfolgen werden durch eine Leerzeile getrennt. Die Ziffern bestehen aus den Zeichen „_“ (Unterstrich) und „I“ (großes i).

Das Programm wird mit einem Dateinamen als Parameter aufgerufen und gibt als Ergebnis die erkannten Ziffern aus. Der Aufbau der Dateien ist immer korrekt.

C:> bankocr datei1.txt
1234567890
815
42
07

Testdaten sind hier zu finden.

Variation #1

Dateien können auch fehlerhaft aufgebaut sein. Die Zeilenstruktur ist allerdings korrekt, d.h. jeweils drei Zeilen werden zu Ziffern zusammengefasst. Auch die Leerzeilen sind vorhanden. Allerdings können in den Zeilen auch andere Zeichen auftreten oder die Zeichen falsch angeordnet sein. Zeilen mit Fehlern sollen in der Ausgabe als „Fehlerhafte Zeile“ ausgegeben werden:

C:> bankocr datei1.txt
1234567890
Fehlerhafte Zeile
42
07