====== 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.