Ok, ich habe das Beispiel mal kurz umgeschrieben, es liegt im Anhang. Ich habe jetzt je eine Klasse für die beiden Formate erstellt, beide abgeleitet von einer Basisklasse. So kannst du möglichst viel wiederverwenden.
Ich hab das noch ein wenig mehr modularisiert, vielleicht hilft das beim Verständnis. Ohne konkrete Fragen weiß ich nicht so recht was ich erklären muss und was klar ist. Denn eigentlich sollte auch der Debugger beim Verständnis helfen.