[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