Home » Tutorials » Datenspeicherung » Binäre Dateien

Binäre Dateien

Alte Formate lesen

Mit der Zeit wird sich ein Programm weiter entwickeln. Das bedeutet häufig, dass noch weitere Daten in der Datei mit abgespeichert werden müssen. Die neuen Programmversionen sollten in der Lage sein die Dateien von älteren Versionen zu lesen. Die Konvertierungsprogramme, die manchmal angeboten werden, sind für den Anwender doch sehr lästig. Toll wäre es natürlich, wenn auch ältere Programmversionen in der Lage wären neuere Dateiformate zu lesen. Dass so etwas geht, kann man an den HTML-Browsern sehen. Selbst Browser, die für die HTML-Version 3 geschrieben wurden sind in der Lage HTML-Version 4 zu lesen. Sie stellen zwar nicht alles und einiges davon falsch dar, für statische Seiten reicht das aber in der Regel.

Wie muss man Daten dafür abspeichern?

Man könnte anhand der Version des Dateiformats entscheiden, wie die Daten einzulesen sind. Dann hätte man also für jede Dateiversion einen Code, der diese einlesen kann. Somit können zwar neuere Programmversionen die Dateien von älteren lesen, die älteren hätten aber keine Chance die der neueren zu lesen. Außerdem besteht die Gefahr, dass man bei umfangreicheren Daten schnell den Überblick verliert, welcher Codeabschnitt für welche Version zuständig ist.
Die Lösung ist eigentlich ganz einfach. Man vergibt an jede einzelne Information einen eindeutigen Namen, der mit abgespeichert wird. Dies wird z.B. so bei Ini-Dateien gemacht.
Beim Einlesen der Datei wird einfach geprüft, ob die Information vorhanden ist. Wenn sie nicht vorhanden ist, dann wird einfach ein Defaultwert vergeben. Somit haben neue Programmversionen keine Probleme damit, dass in älteren Dateien die eine oder andere Information gar nicht abgespeichert ist. Wenn eine ältere Programmversion auf ein neueres Dateiformat trifft, dann ignoriert sie einfach die zusätzlich vorhandenen Daten und kann somit teilweise den Inhalt der Datei anzeigen.

Ini-Datei

Wenn Ini-Dateien bereits so einen Aufbau besitzen, dann könnten wir auf die Idee kommen diese zu verwenden. Ini-Dateien haben aber einige Nachteile:
Ini-Dateien sind zeilenorientiert. Wenn man einen mehrzeilgen Text hat, dann muss man jede Zeile einzeln abspeichern. Ini-Dateien unterstützen keinen hierarchischen Aufbau. Wenn man so etwas wie eine Ordnerstruktur abspeichern möchte, dann muss man sich ein künstliches Format ausdenken, damit man die hierarchischen Informationen in einer Ini-Datei unterbringen kann.

XML-Dateien

XML-Dateien sind flexibler als Ini-Dateien. Durch das Verschachteln von Tags machen sie es relativ leicht hierarchische Daten zu speichern. Auch das Speichern von mehrzeiligen Text und Sonderzeichen ist relativ einfach, da es etliche XML-Komponenten gibt, die das unterstützen. Eine Schwachstelle von XML-Dateien sind binäre Daten, wie z.B. Bilder, Filme oder Musik. Binäre Daten müssen erst in eine für XML geeignete Form überführt werden. Dadurch wächst der Speicherbedarf stark an.