Inhaltsverzeichnis

INI

Initialisierungsdateien (kurz INI-Dateien) sind Textdateien mit einem einfachen Format zur Darstellung von Daten. Dabei werden alle Daten einem Abschnitt (section) zugeordnet. Jeder Abschnitt wiederum enthält verschiedene Schlüssel (keys) mit Werten (values). Dabei lässt sich eine Information über das Tupel (section, key) eindeutig identifizieren.

INI-Dateien enthalten keine Typinformationen. Somit muss der Datentyp einer Information vom Programm (welches die INI-Datei verwendet) anhand von Abschnitt und Schlüssel bekannt sein. INI-Dateien werden häufig von Desktopanwendungen verwendet, um Einstellungs- bzw. Konfigurationsdaten zu speichern.

In Command & Conquer Red Alert wurden spielinterne Daten (Bewaffnung einer Einheit, Schaden einer Waffe, Baukosten usw.) in einer rules.ini gespeichert.

Beispiel

Hier ein Ausschnitt aus der rules.ini:

; vehicle mounted machine gun
[M60mg]
Damage=15
ROF=20
Range=4
Projectile=Invisible
Speed=100
Warhead=SA
Report=PILLBOX1
Anim=MINIGUN

; napalm bomblets (dropped from plane)
[Napalm]
Damage=100
ROF=20
Range=4.5
Projectile=Bomblet
Speed=5
Warhead=Fire

; Tesla coil zap
[TeslaZap]
Damage=100
ROF=120
Range=8.5
Projectile=Invisible
Speed=100
Warhead=Super
Report=TESLA1
Charges=yes

Aufbau

Der Bezeichner jedes Abschnittes wird dabei zwischen [ und ] angegeben. Für diesen Bezeichnet gibt es keine (mir bekannte) Festlegung. Jedoch bieten sich die Buchstaben a-z, A-Z, die Ziffern 0-9 sowie _ an. Auf exotische Sonderzeichen oder gar [, ], = sollte verzichtet werden. Ebenso sind ; (und häufig auch #) verboten, da diese für Kommentare verwendet und somit von INI-Parsern nicht ausgewertet werden. Außerdem sollte jeder Abschnittsname nur einmal pro INI-Datei verwendet werden, um die eindeutige Identifizierbarkeit zu gewährleisten.

Die Schlüssel jedes Abschnittes sollten der gleichen Restriktion unterliegen, d.h. eindeutig bezüglich des aktuellen Abschnitts sein. Schlüssel und Wert werden durch = getrennt. Am Ende des Wertes folgt ein Zeilenumbruch.

Durch diesen einfachen Aufbau, lassen sich INI-Dateien mithilfe von assoziativen Arrays implementieren.