Wenn du eine Delphi-Version hast, die XML-Komponenten mitbringt (ab Delphi 7, ob Professional oder erst Enterprise weiss ich nicht), würde ich das als XML verwalten und speichern. Das könnte dann so aussehen:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| <?xml version="1.0" encoding="UTF-8" ?> <konfiguration> <stringwert>Dies ist ein String</stringwert> <bytewert>54</bytewert> <stringarray count="3"> <wert>Erster Eintrag</wert> <wert>Zweiter Eintrag</wert> <wert>Dritter Eintrag</wert> </stringarray> <bytearray count="100"> <byte>5</byte> ... </bytearray> </konfiguration> |
Zur Manipulation dieser Datei benutzt du das TXMLDocument über die IXMLDocument-Schnittstelle. Zum Schreiben sieht das so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| var doc : IXMLDocument; arrayNode : IXMLNode; node : IXMLNode; i : Integer; begin doc := NewXMLDocument; doc.Encoding = 'UTF-8'; doc.DocumentElement = doc.CreateElement('konfiguration', ''); doc.DocumentElement.ChildValues['stringwert'] := meinStringWert; doc.DocumentElement.ChildValues['bytewert'] := meinByteWert; arrayNode := doc.DocumentElement.AddChild('stringarray'); arrayNode.Attributes['count'] := stringArrayGroesse; for i := 1 to stringArrayGroesse do begin node := arrayNode.AddChild('wert'); node.Text := stringArray[i]; end; ... doc.SaveToFile('konfiguration.xml'); end; |
Lesen geht dann so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| var doc : IXMLDocument; arrayNode : IXMLNode; node : IXMLNode; i : Integer; begin doc := LoadXMLDocument('konfiguration.xml'); meinStringWert := doc.DocumentElement.ChildValues['stringwert']; meinByteWert := doc.DocumentElement.ChildValues['bytewert']; arrayNode := doc.DocumentElement.ChildNodes['stringarray']; node := arrayNode.ChildNodes.First; i := 1; while Assigned(node) do begin stringArray[i] := node.Text; node := node.GetNextSibling; Inc(i); end; ... end; |
Vorteile dieses Verfahrens:
1. Du hast eine mit einem Texteditor lesbare KOnfigurationsdatei, das vereinfacht die Fehlersuche.
2. Die Konfiguration ist leicht erweiterbar ohne die Kompatibilität zu alten Dateinen zu verlieren.
3. XML ist plattfromneutral und damit leicht portabel.
4. Wenn du ein passendes XML-Schema erstellst, lässt sich die Korrektheit einer XML-Datei automatsch prüfen
Nachteile:
1. Binärdateien sind kleiner
2. Binärdateien sind normalerweise schneller zu lesen und schreiben
Stefan
Ein Computer ohne Windows ist wie eine Schokoladentorte ohne Senf.