[Allegro] Pfadfreie INI-Datei
Heinrich Allers
allers at t-online.de
So Nov 20 00:15:53 CET 2005
Allegro ist phantastisch! Schon seit langer Zeit braucht die INI-Datei
ja nicht mehr die Angabe für Programm- und Dateipfad enthalten; aber:
Daß sie bei mir noch Angaben für den Zugriffspfad für die Phrasendatei
und für temporäre Dateien (DbAux) enthielt, war zwar nicht zwingend,
aber entsprang dem Wunsch, gezielt darüber verfügen zu können, wo die
Phrasen- und wo temporäre Dateien liegen.
Diese Pfadgebundenheit der INI-Datei ging mir allmählich auf die
Nerven, da bei der Menge unserer Anwender mehrere (wenn auch nicht
beliebige, sondern durchaus kontextbestimmte)
Verzeichniskonstellationen vorkamen, d.h., ich mußte bei der Kopie
eines Datenbankverzeichnisses auf eine andere Verzeichnisstruktur
hinterher immer die INI-Datei ändern, um die betreffende Datenbank
aufrufbar zu machen.
Seit wenigen Momenten ist das nicht mehr so: meine INI-Datei ist
nunmehr vollkommen pfadunabhängig! Und daß das geht, bringt mich dazu,
zu sagen, daß Allegro phantastisch ist!
Wie geht's? Was die Lage der Phrasendatei angeht, ist es einfach: der
Aufruf der Datenbank ist auch dann möglich, wenn in der INI-Datei die
Phrasendatei mit einem Zugriffspfad eingetragen ist, den es auf dem
System garnicht gibt. Ich überlasse es dann der _start.flx, die INI-
Datei zu reparieren und die Datenbank neu mit einem kontextkonformen
und existierenden Phrasendatei-Zugriffspfad aufzurufen.
Mühsamer war, die Sache mit dem Ablageverzeichnis für temporäre Dateien
(DbAux, Umgebungsvariable TEMP) in den Griff zu kriegen, denn das
Problem ist, daß eine Datenbank, in deren INI-Datei als DbAux-Pfad ein
Verzeichnis steht, das es nicht gibt, schlicht nicht aufrufbar ist,
d.h. es überhaupt keine Chance gibt, in _start.flx die "Reparatur" der
INI-Datei an der Stelle "DbAux=" durchzuführen.
Lösung:
Spezifikation "DbAux=" wird aus der INI-Datei gänzlich
herausgeschmissen; stattdessen wird in _start.flx ein Mechanismus
eingebaut, der erstens die Umgebungsvariable TEMP so setzt, wie ich das
will, und zweitens die Datenbank dann erneut unter dieser neuen TEMP-
Setzung aufruft (das läuft über 'ne Stapeldatei).
Ich bin sehr zufrieden, überhaupt soweit und zu einer total
verzeichnisunabhängigen INI-Datei gekommen zu sein.
###
Desiderate an die Entwicklungsabteilung, die sich aus meinen Bemühungen
ableiten, sind dabei freilich auch entstanden:
Ich wünschte mir als Analogon für den arbeitsverzeichnisbezogenen
Flexbefehl
set W xyz [perm]
einen Flexbefehl, der
set M xyz [perm]
lauten könnte und sich auf das Ablageverzeichnis für temporäre Dateien
(DbAux, Umgebungsvariable TEMP) bezieht.
Ferner:
Ich wünschte mir eine "Besondere Variable" für das Phrasendatei-
Ablageverzeichnis (für das einen Buchstaben zu finden schwierig ist, da
P und rechtschreibschwächelastiges F für "Phrase" schon vergeben sind).
Denn dann wäre die verzeichniseintragungsfreie INI-Datei wesentlich
eleganter realisierbar als mir das nun gelungen ist.
Mit besten Grüßen:
Heinrich Allers
-- allers at t-online.de * http://www.allers.privat.t-online.de
Mehr Informationen über die Mailingliste Allegro