Initialisierungsdatei

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

EineInitialisierungsdateibzw. kurzINI-Datei,abgeleitet von der meist im8.3-Schema genutzteDateinamenserweiterung.INI,ist eineKonfigurationsdateifür diverse Software, die die darin gespeicherten Einstellungen für den benutzerdefinierten Start verwendet.[1]Mit der ersten Version vonMicrosoft Windows,Windows 1.0,[2]wurde die InitialisierungsdateiWIN.INIdafür verwendet, die in der Systemsteuerung angepassten Benutzereinstellungen für den nächsten Windows-Start zu speichern.[3]Dieses Windows-INI-Formatoder ein daran angelehntes Textformat wurde später nicht nur von Windows-Anwendungenübernommen, es wird auch von diversen Programmenbetriebssystemübergreifendgenutzt, u. a. um Einstellungendauerhaft zu speichern.

Dem Windows-Standard folgend sind INI-Dateien meist einfacheTextdateien,zunächst imASCII-Zeichensatz,die Schlüssel-Wert-Paare enthalten, die ggf. durch Sektionen gegliedert werden.[4]Da jedes Programm eigene INI-Dateien definieren kann, entspricht das genaue Format jedoch möglicherweise nicht dem von Microsoft vorgegebenen Standard. Beispielsweise nutztOS/2binäreINI-Dateien.[5]

Bis zur Einführung derRegistrierungsdatenbankmitWindows NT 3.1war dieWIN.INIdie einzige Initialisierungsdatei zur Speicherung von Programm-Konfigurationen, was durch dieWinAPIunterstützt wurde. In späteren Windows-NT-Versionen ist der API-Zugriff zwar noch vorhanden, wird aber als veraltet angesehen.[6]

Das INI-Format von Windows gilt als einfach aufgebautes und zugleichvon Menschen leicht lesbaresDateiformat,das grundsätzlich mit jedemTexteditorbearbeitet werden kann. Allerdings sind die Bezeichnungen der Einstellungen damit keineswegs auch selbsterklärend und aussagekräftig.[7]

Die Initialisierungsdaten werden zeilenweise abgelegt: ein Gleichheitszeichen trennt den Schlüssel von seinem Wert.[4]

Schlüssel=Wert

Um Schlüssel in sog. Sektionen zu gruppieren, ist eine (pro Datei eindeutige) Bezeichnung in eckigenKlammernüber der jeweiligen Sektion anzugeben. Benannte Sektionen sind nicht verpflichtend, je Sektion müssen die Schlüssel eindeutig sein.

[Sektion1]
Schlüssel=Wert
[Sektion2]
Schlüssel=Wert
Schlüssel2=Wert

Außerdem erlaubt das DateiformatKommentarzeilen,diese beginnen mit einemSemikolon.[7]

;Kommentar

Beim Erstellen einer INI-Datei sind folgende Regeln zu beachten:

  • Jede Sektion darf nur einmal vorkommen.
  • Jeder Schlüssel darf nur einmal je Sektion vorkommen.
  • Auf Werte wird mittels Sektion und Schlüssel zugegriffen.
  • Kommentare werden mit einem „; “eingeleitet.
  • Kommentare dürfen nur auf separaten Zeilen (nicht hinter Sektionsüberschriften oder Schlüsseln) stehen.
  • Leerzeichen und Anführungszeichen werden von verschiedenen Programmen teilweise unterschiedlich behandelt.
  • Groß- und Kleinschreibungwird nicht unterschieden
  • Aussagenlogik:False und No werden als 0, True und Yes als 1 interpretiert.

Es gibt Dateien mit nahezu demselben Aufbau, die sich lediglich durch folgende Merkmale unterscheiden:

  • Fehlende oder andere Dateiendung (z. B..conf und.cfg)
  • Einleitung von Kommentaren mit einem anderen Zeichen (z. B. „# “).

Ein Beispiel für eine solche Variation findet sich in den Konfigurationsdateien fürSubversion-Repositories.

Alternative Formate

[Bearbeiten|Quelltext bearbeiten]
Beispiel einer benutzerfreundlichen Auswahlmöglichkeit zur Festlegung des Speicherortes

In früherenWindows-Ausgaben (mit der Einführung vonNTFS) existierten zwei alternative/konkurrierende Philosophien für den Standard-Dateipfadzur INI-Ablage, wobei auf der einen Seite dieBenutzerfreundlichkeitund auf der anderen Seite dieSicherheitim Vordergrund stand.

Im Folgenden am Beispiel vonWindows XP:

  • \Dokumente und Einstellungen\<Benutzername>\Anwendungsdaten\<Programmname>\
    (allgemein, über eine sogenannteUmgebungsvariable:%APPDATA%\<Programmname>;englisch:\Documents and Settings\<Benutzername>\Application Data\<Programmname>\)
  • \Programme\<Programmname>\
    (allgemein:%PROGRAMFILES%\<Programmname>;englisch:\Program Files\<Programmname>\)

AbWindows Vistawird die Veränderung des Programme-Ordners durch Benutzer mit eingeschränktenRechten(oderNicht-Administratoren) standardmäßig von derBenutzerkontensteuerungblockiert, wovon auch dort gespeicherte INI-Dateien betroffen sind. Manche Programme vergeben daher bei derInstallationsämtliche Rechte für die installierten Dateien an den Benutzer „Jeder “. In diesen Windows-Versionen existieren ggf. zudem automatisch erzeugte Kopien der INI-Dateien imSchattenverzeichnis$USERDIR$\AppData\Local\VirtualStore\Windows\.

Anwendungen, die ihre Einstellungen in ihrem eigenen Programmordner ablegen (beispielsweise%PROGRAMFILES%\<Programmname>\oder%UserProfile%\Desktop\<Programmname>\), bieten den Vorteil, dass sie leichter auf einen anderen Rechner übertragbar sind, haben aber den Nachteil, dass sich alle Benutzer der Anwendung auf einem Rechner diese Einstellungen teilen. Solche Anwendungen werden auch alsportabelbezeichnet. Voraussetzung zum Ändern dieser Einstellungen ist, dass der Benutzer Schreibrechte auf die INI-Datei (und den Programmordner) besitzt.

  • GetPrivateProfileString:Microsoft Windows API-Funktion zum Auslesen von Werten aus einer INI-Datei.
  • GetPrivateProfileSection:Microsoft Windows API-Funktion zum Auslesen von allen Schlüsseln und Werten aus einer Sektion der INI-Datei.
  • GetPrivateProfileSectionNames:Microsoft Windows API-Funktion zum Auslesen von Sektionen aus einer INI-Datei.
  • simpleini– eine plattformübergreifende C++-Bibliothek, die ein einfaches API zum Lesen und Schreiben von Konfigurationsdateien im INI-Format bietet
  • mc.ext.ini– Beispiel für eine moderne INI-Datei im Windows-INI-Format: die „Extension“-Datei desMidnight Commander
  1. Charles Petzold:PM Functions in Non-PM Programs – As a rule, Presentation Manager functions can be called only from within PM programs. asINISHOW.EXEdemonstrates, however, rules can sometimes be broken.In:PC Magazine.Band8,Nr.11.Ziff Davis,13. Juni 1989,S.343ff.,But maybe…(englisch,eingeschränkte Vorschauin der Google-Buchsuche):“First, some background. Many applications need to store program initialization or configuration data.”
  2. Mark Minasi, Eric Christiansen, Kristina Shapar:The Expert Guide to Windows 98.Sybex, 1998,ISBN 978-0-7821-1974-9,S.128,Contents of.INIFiles(englisch,eingeschränkte Vorschauin der Google-Buchsuche):“It's hard to draw a clear and distinct line between whatSYSTEM.INIandWIN.INIdo, asWIN.INIhas existed since the Windows 1.0 days andSYSTEM.INIhas only been around since version 3.0. Although it's tempting to say thatSYSTEM.INIcontrols the hardware configuration of Windows, andWIN.INIcontains user preferences and software configuration, that's not 100 percent accurate.”
  3. Paul W. Ross:The Handbook of Software for Engineers and Scientists.CRC Press, 1996,ISBN 0-8493-2530-7,2.7 Customizing the Windows Environment,S.28ff.,Modifying the Initialization Files(englisch,eingeschränkte Vorschauin der Google-Buchsuche):“Each time you start Windows, a set of files is read informing Windows of how to set various configuration options.”
  4. abPaul W. Ross:The Handbook of Software for Engineers and Scientists.CRC Press, 1996,ISBN 0-8493-2530-7,2.7 Customizing the Windows Environment,S.28ff.,Modifying the Initialization Files(englisch,eingeschränkte Vorschauin der Google-Buchsuche):“Windows initialization files are ASCII text files, and have the following format:
    [section name]
    keyname=value
  5. Charles Petzold:PM Functions in Non-PM Programs – As a rule, Presentation Manager functions can be called only from within PM programs. asINISHOW.EXEdemonstrates, however, rules can sometimes be broken.In:PC Magazine.Band8,Nr.11.Ziff Davis,13. Juni 1989,S.343ff.,WIN.INI and OS2.INI(englisch,eingeschränkte Vorschauin der Google-Buchsuche):“The WIN.INI file created byMicrosoft Windowsin the \WINDOWS directory in in many ways similar to OS2.INI, and the functions thatWindowsprovides applications to use WIN.INI are similar to the Presentation Manager functions. The most significant difference is that WIN.INI is an editable ASCII file, while OS2.INI is a binary file.… directly editing the OS2.INI file is not possible, though much of the system information in OS2.INI can be changed by using the Presentation Manager Control Panel program.… Programs can store information in OS2.INI only through PM functions, such as WinWriteProfileData.”
  6. Gerhard Stephan:How to access INI Files in C#.NET.(Blog) In:All about nothing –.NET C#, Oracle, SQL Server and all other stuff that gives live a sense.11. September 2006, archiviert vomOriginal(nicht mehr online verfügbar) am20. November 2006;(englisch): „Sometimes you’ll find your self in a situation where you need to use outdated techniques in order to support outdated applications… That time you’ll recognize that.NET does not support INI Files anymore. “
  7. abWilliam S. Hall:Getting More Out of Windows.In:PC Magazine.Band8,Nr.11.Ziff Davis,13. Juni 1989,S.385ff.,WIN.INI(englisch,eingeschränkte Vorschauin der Google-Buchsuche):“As you can see, a WIN.INI entry is fairly readable. That doesn't necessarily mean it makes a lot of sense—it's always wise to look at the relevant documentation if the meaning of a particular field isn't clear. Comments can be placed in WIN.INI by using a semicolon.… In some older versions ofWindowsm placing an = or bracketed text in a commented line could cause problems. Despite the semicolon, the line was often interpreted as a section name or as keyname=value. It's probably a good idea to avoid the use of =, [, or ] in a comment.”