home *** CD-ROM | disk | FTP | other *** search
-
- ConfigDemo
- ==========
-
- Public Domain
-
- ConfigDemo ist eine kleines Oberon-Modul, daß das Lesen und Schrieben
- von Konfigurations-Dateien im Interchage-File-Format (IFF)
- demonstriert.
-
- Es ist an einen Auszug aus Olaf `Olsen' Barthels TERM angelegt, liest
- aber nicht nur einen Chunktyp, sondern mehrere verschiedene.
-
- Der Gag: Oberon Programmierer brauchen nur einige Kleinigkeiten zu
- ändern, und schon haben sie ein Modul, daß ihre Config liest. Nur den
- Filenamen müßen sie noch selbst herausbekommen. :-)
-
- Warum die Config als IFF-Datei ablegen?
-
- - Weil es der StyleGuide vorschreibt (sicher nur ein schlechter Grund)
-
- - Weil dadurch hohe Sicherheit bei gringem Aufwand ermöglicht wird.
- Olsen schreibt (ich hoffe, er ist mir nicht böse, daß ich ihn hier
- zitiere):
-
- Ich wollte zu Anfang einfach nur die iffparse.library benutzen,
- aber mittlerweile hat sich herausgestellt, daß es recht nützlich
- ist, wenn man auf die Parsing-Routinen der Library zurückgreifen
- kann. So bekommt `term' keinerlei Probleme damit, wenn ältere
- Konfigurationsdateien (naja, sagen wir einmal bis zu Version 1.6)
- gelesen werden sollen, da automatisch nur der Teil gelesen wird,
- der gelesen werden kann und der Rest mit Standardwerten ausge-
- füllt wird. Außerdem läßt sich mit Property-Chunks eine Menge
- anstellen, ich habe dem Telefonbuch z.B. in Version 2.0 Passwort-
- funktionen eingebaut. Das Telefonbuchformat blieb dasselbe, es
- kam nur der PASS-Chunk hinzu. Da die Passwortimplementierung noch
- einige Macken hatte, konnte ich den Chunk in Version 2.1 komplett
- durch einen anderen Typ ersetzen, `term' liest aber noch das alte
- Format, ohne mich großartig damit herumzuärgern, das Dateiformat
- zu analysieren, Magic cookies zu suchen, Prüfsummen zu testen
- oder abzufälschen. Der Vorteil von IFF-Dateien ist, daß man alle
- benötigten Informationen kapseln, ersetzen und erweitern kann,
- ohne andere Elemente der Datei zertrümmern zu müssen.
-
- +++hartmut
-
-