D7WS HOMEPAGE WORKSHOP NEUE XTRAS GALERIE WORKSHOP Automatic Translation LESERSERVICE BUCH NEWS

Ermittlung länderspezifischer Einstellungen aus der Datei "Win.ini"

 

 

 

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.




 

 

 

 

Das Script


on getOSlanguageSetting
  -- prueft unter Windows die Laendereinstellung
  -- vgl. Systemsteuerung / Laendereinstellungen
  -- liefert die internationale Telefonvorwahl
  sysDir = getOSdirectory()
  fObj = new(Xtra "FileIO")
  if objectp(fObj) then
    fname = sysDir & "\win.ini"
    openFile(fObj,fname,0)
    tmp = ReadFile(fObj)
    closeFile(fObj)
    fObj = 0
  end if
  --
  repeat with m = 1 to the number of lines of tmp
    if line m of tmp contains "iCountry=" then
      language = line m of tmp
      delete char 1 to 10 of language
      exit repeat
    end if
  end repeat
  return language
end

Weitere Beispiele zum Einsatz des Xtras "FileIO" finden Sie in der Macromedia-Technote #3192 unter http://www.macromedia.com/support/director/ts/documents/tn3192.html
Eine Dokumentation der landesspezifischen Einstellungen in der Datei "Win.ini" liefert Microsoft im Artikel "Writing International Applications for Windows"unter
http://support.microsoft.com/support/kb/articles/q65/1/24.asp.

Wenn Sie mehrere Paramter aus der Datei "Win.ini" auslesen wollen oder auch einen universellen Zugriff auf andere Ini-Dateien benötigen, lohnt die Konvertierung in eine geschachtelte Propertylist. Wie das funktioniert, lesen Sie im Beitrag "Ini-File-Parsing".

Weitere plattformunabhängige Methoden zur Ermittlung länderspezifischer Einstellungen stellt der Beitrag "Systemsprache ermitteln" vor.

Gerd Gillmaier

 

 




 


Directorworkshop.de ist © Joachim Gola & Gerd Gillmaier 1998-2002. Alle Rechte vorbehalten.