|
Home
Workshop-Seite
|
Die
Suche nach der Möglichkeit zur Abfrage systemspezifischer Einstellungen
unter Windows endet oft bei einem Xtra wie Buddy
API oder MasterApp
mit dem dann in mehr oder minder kryptischer Syntax
auf die entsprechenden Einträge in der Windows-Registry zugegriffen
wird. Einen nicht unwesentlichen Teil der Systemspezifika speichert
Windows allerdings auch in Ini-Dateien, die als reiner ASCII-Text
vorliegen und dementsprechend einfach auch mit dem im Lieferumfang
von Director enthaltenen Xtra FileIO gelesen werden können.
Als Beispiel sei hier die Sprachauswahl vorgestellt, die der Anwender
im Dialog "Start/Einstellungen/Systemsteuerung/Ländereinstellungen"
vornehmen kann. Für mehrsprachige CD-ROM-Produktionen ist es
z.B. sinnvoll, diese Einstellungen zu interpretieren, um dem Anwender
die dort ermittelte Sprache als Voreinstellung anzubieten.
Die landesspezifischen Einstellungen finden Sie in der Datei "Win.ini"
im Abschnitt "[intl]"
Die Datei "Win.ini" ist im Windows-Verzeichnis gespeichert.
Da sich Windows auch in abweichend benannten Verzeichnissen installieren
läßt, muß dem Zugriff auf die Datei "Win.ini"
die Ermittlung des Systemverzeichnisses vorausgehen. Dies kann ebenfalls
mit dem Xtra FileIO erledigt werden. Die FileIO-Funktion getOSdirectory()
liefert die gewünschte Information. Berücksichtigen Sie
beim Einsatz dieser Funktion allerdings den folgenden Bug: Unter
Windows liefert diese Funktion im Unterschied zu allen anderen Pfadangaben
und dem Verhalten unter MacOS den Pfad ohne abschließenden
Backslash "\". Dieser muß im jeweiligen Skript hinzugefügt
werden.
Ist das Windows-Verzeichnis ermittelt, öffnen wir die Datei
"Win.ini" zum Lesen, legen ihren kompletten Inhalt mit
Hilfe der Funktion "readFile" in der Variablen "tmp"
ab und schließen die Datei wieder.
Im zweiten Schritt wird nun die in der Variablen "tmp"
enthaltene Information nach der Codierung des gewählten Landes
"iCountry=" durchsucht. Diese enthält die internationale
Telefonvorwahl des im Dialog eingestellten Landes (mit Ausnahme
Kanadas, das mit einer "2" anstelle der "1"
kodiert ist).
Die Suche ist als mit "repeat" realisierte Programmschleife
realisiert, in der alle Textzeilen auf die Existenz der Zeichenkette
"iCountry=" hin untersucht werden. Sobald eine Übereinstimmung
festgestellt wird, extrahieren wir die Landesvorwahl, indem wir
den Zeilenanfang löschen, verlassen die Programmschleife und
liefern das Ergebnis mit "return" zurück.
|


 |