Zu 1.: Was wäre, wenn das File binär wäre?
1. Dein Programm könnte Daten schneller zugreifen, da es Zahlenwerte nicht erst zu konvertieren braucht.
2. Die Datendatei wäre um etwa 20-75% kleiner
3. Sensible Daten können einfacher geschrieben werden, da nur wenige sich mit dem Auseinander-Fitzen von Binär-Files beschäftigen
4. Das Schreiben von neuen Daten ist vereinfacht, da du Datensatz-Grenzen einfacher ansprechen kannst.
Zu 2.: Was wäre das beste Vorgehen?
1. Strukturiere deine Daten in Datensätze (Datenwert-Gruppen, z.B. Sektionen bei INIs)
2. Überlege für jedes Feld (Datenwert), welche Daten darin gespeichert werden (Boolean, Byte, Word, DWrod, Integer, Single, Double, Extended, ShortString, Texte, Weitere Records, Array, Komplexes Array, Tree, Binärdaten, ...)
3. Nutze zum Lesen Streams
4. Schreibe an den Anfang der Datei eine Signatur, die folgende Werte enthält:
2 oder 4 Zeichen, für den Anwendungsnamen
Versionsnummer (Binär oder als Ziffer) mit Angabe zu Major und Minor-Version (Keinerlei Releases oder Builds)
Datentyp-Identifikation, wenn das Programm mehrere Dateitypen speichern kann
5. (Lässt sich nicht vermeiden): Schreibe eine Routine, die Fehlerprüfungen durchführt und Fehlercodes zurückgibt (Keine Meldungen direkt in der Routine ausgeben)
6. Wenn möglich eine Prüfsumme ergänzen, um Korrektheit zu gewährleisten.
7. Feldwerte beim Öffnen evtl. korrigieren.
8. Routinen zum Lesen von älteren Binär-Format-Versionen integriert lassen (Abwärtskompatibilität)
9. Bei großen Datenmengen:
9.1. Inhaltsverzeichnis
9.2. Komprimierung (Header immer unkomprimiert, Datenlänge reinschreiben)