Home » Tutorials » Datenspeicherung » Binäre Dateien

Binäre Dateien

Schlusswort

Formataufbau

Jetzt sollten wir in der Lage sein Dateien so abzuspeichern, dass eine Erweiterung des Formates bei zukünftigen Programmversionen kein Problem mehr darstellt. Aber man sollte trotzdem bei einem neuen Programm erst intensiv darüber nachdenken, wie man das Dateiformat dafür aufbaut. Man sollte lieber einen Knoten mehr mit einbauen, als dass man bei einer zukünftigen Programmversion gezwungen ist, eine ganz neue Knotenebene einführen zu müssen. Dies würde fast immer bedeuten, dass die alten Programmversionen nicht mehr in der Lage sein werden, die neuen Dateien vernünftig auszuwerten. Auch für die neue Programmversion wird es in deutlich mehr Programmieraufwand ausarten, wenn man eine neue Ebene einschieben muss. Da man sicherlich trotzdem noch das Einlesen der alten Dateien unterstützen will, droht einem dann dass der Code unübersichtlich wird.

Eigene binäre Klassen

Für die meisten Delphidatentypen findet man in der Unit RakBinaryStreamData eine passende Klasse. Wenn scheinbar keine der Klassen passt, dann ist TRakBinaryBlob die richtige Klasse. Mit dieser Klasse kann man jede beliebige binäre Information abspeichern. TRakBinaryBlob ist aber etwas unhandlich, da man dann gezwungen ist mit Pointern zu arbeiten. Man kann sich aber jederzeit eine eigene Klasse von TRakBinaryBlob ableiten und dieser dann eine handliche Schnittstelle für die speziellen Daten geben. Als Beispiele für solche Klassen kann man sich die Klassen TRakBinaryPicture oder TRakBinaryBitmap ansehen, die man ebenfalls in der Unit RakBinaryStreamData findet. Wenn man sich eigene Klassen schreibt, dann darf man aber nicht vergessen diese zu registrieren. Bei den genannten Klassen wird das z.B. im initialization-Abschnitt der Unit gemacht.

XML

Da XML immer mehr im kommen ist, könnte es sein, dass Sie die Daten zu irgendeinem Zweck in einem XML-Format brauchen. Es gibt zwei Funktionen, mit denen man ein TRakBinaryStreamData auch als XML-Stream schreiben/lesen kann. Diese beiden Funktionen findet man in der Unit RakBinaryStreamDataXML. Wenn Sie diese Unit nutzen möchten, dann benötigen Sie aber den XML-Parser von Dieter Köhler (http://www.philo.de/homepage.htm)
Wenn Sie Fragen zum Tutorial haben, dann können Sie diese per E-Mail an den Autor senden (richard.kaspar@web.de).