INI -Datei

Ini
INI file icon.png
Dateiname Erweiterung
.ini
Internet -Medientyp
Text/Ebene, Anwendung/textedit, ZZ-Anwendung/Zz-winassoc-Ini
Art des Formats Initialisierungs-/Konfigurationsdatei

Ein INI -Datei ist ein Konfigurationsdatei zum Computer Software Das besteht aus einem textbasierten Inhalt mit einer Struktur und einer Syntax, die umfasst Schlüssel -Wert -Paare für Eigenschaften und Abschnitte, die die Eigenschaften organisieren.[1] Der Name dieser Konfigurationsdateien stammt von der Dateiname Erweiterung Ini, zum Initialisierung, verwendet in der MS-DOS Betriebssystem, das diese Methode der Softwarekonfiguration populär gemacht hat. Das Format ist in vielen Kontexten der Konfiguration zu einem informellen Standard geworden Conf und CFG.[2]

Geschichte

Der Hauptmechanismus der Softwarekonfiguration in Fenster war ursprünglich ein Textdateiformat, das Textzeilen mit einem Schlüssel -Wert -Paar pro Zeile umfasste, das in Abschnitte organisiert wurde. Dieses Format wurde für Betriebssystemkomponenten wie Gerätetreiber, Schriftarten und Startwerfer verwendet. INI -Dateien wurden im Allgemeinen auch von Anwendungen verwendet, um einzelne Einstellungen zu speichern.[3]

Das Format wurde in 16-Bit gehalten Microsoft Windows Plattformen durch Windows 3.1x. Beginnen mit Windows 95 Microsoft bevorzugte die Verwendung der Windows -Registrierung und begann, Entwickler von der Verwendung von Ini -Dateien zur Konfiguration zu lenken. Alle nachfolgenden Windows -Versionen haben die Windows -Registrierung für die Systemkonfiguration verwendet. Anwendungen, die auf dem .NET -Framework basieren, verwenden speziell Xml .Config Dateien. Die Initialisierungs-Dateifunktionen sind weiterhin in Windows verfügbar und Entwickler können sie möglicherweise weiterhin verwenden.

Linux und Unix Systeme verwenden auch ein ähnliches Dateiformat für die Systemkonfiguration. Darüber hinaus kann die Plattform-Agnostic-Software dieses Dateiformat zur Konfiguration verwenden. es ist für Menschen lesbar und einfach zu analysieren, daher ist es ein verwendbares Format für Konfigurationsdateien, für die keine viel größere Komplexität erforderlich ist.

GIT -Konfigurationsdateien ähneln INI -Dateien.[4]

Php Verwendet das INI -Format für seine "Php.ini"Konfigurationsdatei sowohl in Windows- als auch in Linux -Systemen.[5][6]

Desktop.ini Dateien bestimmen die Anzeige von Verzeichnissen in Windows, z. B. die Symbole für ein Verzeichnis.[7]

Beispiel

Die folgende Beispieldatei enthält zwei Abschnitte: einen für den Eigentümer der Software und eine für eine Lohn- und Gehaltsabrechnungsdatenbankverbindung. Kommentare erfassen Sie die letzte Person, die die Datei und den Grund für die Änderung geändert hat.

; zuletzt geändert 1. April 2001 von John Doe [Eigentümer] Name = John Doe Organisation = ACME Widgets Inc. [Datenbank] ; Verwenden Sie die IP -Adresse, falls der Netzwerkname -Auflösung nicht funktioniert Server = 192.0.2.62  Hafen = 143 Datei = "Gehaltsabrechnung" 

Format

INI ist ein informelles Format mit Merkmalen, die von Parser zu Parser (INI -Dialekte) variieren. Einige Merkmale werden über verschiedene Parsers als andere geteilt und können als harte Kern des Formats angesehen werden (z. B. Quadratklammern für Abschnitte, Newlines für die Abgrenzung verschiedener Knoten usw.). Versuche, Parser zu erstellen, die in der Lage sind, so viele Dialekte wie möglich zu unterstützen, existieren,[8] und in seiner fortschrittlichsten Form kann das INI -Format ein Baumobjekt mit einer Leistung ausdrücken, die mit der anderer strukturierter Formate (JSON, XML) unter Verwendung einer entspannteren Syntax vergleichbar ist.

Stabile Funktionen

Schlüssel (Eigenschaften)

Das in einer INI -Datei enthaltene grundlegende Element ist die Schlüssel oder Eigentum. Jeder Schlüssel hat einen Namen und einen Wert, abgrenzt durch eine Gleiches Zeichen (=). Der Name erscheint links vom gleichen Zeichen. In der Windows -Implementierung sind das gleiche Zeichen und das Semikolon reservierte Zeichen und können nicht im Schlüssel angezeigt werden. Der Wert kann jedes Zeichen enthalten.

Name = Wert 

Die Führung und Verlauf von Weißwäschen um die Außenseite des Eigenschaftsnamens werden ignoriert.

Abschnitte

Schlüssel kann, aber nicht, in willkürlich benannt werden Abschnitte. Der Abschnittsname erscheint in einer Zeile für sich selbst in eckige Klammern ([ und ]). Alle Schlüssel nach der Abschnittserklärung sind mit diesem Abschnitt verbunden. Es gibt keinen expliziten "Ende des Abschnitts" -Ergrenzwerts; Die Abschnitte enden bei der nächsten Abschnittserklärung oder am Ende der Datei. Abschnitte können nicht verschachtelt werden.

[Sektion] Key1 = a Key2 = b 

Fallempfindlichkeit

Abschnitt und Eigenschaftsnamen sind nicht Fallempfindlichkeit in der Windows -Implementierung,[9] Aber andere Anwendungen können sich unterschiedlich verhalten.

Kommentare

Semikolons (;) Zu Beginn der Linie zeigen a Kommentar. Kommentarlinien werden ignoriert.

; Kommentartext 

Reihenfolge der Abschnitte und Eigenschaften

Die Reihenfolge der Eigenschaften in einem Abschnitt und die Reihenfolge der Abschnitte in einer Datei ist irrelevant.

Unterschiedliche Merkmale

Da das INI -Dateiformat nicht starr definiert ist, unterstützen viele Parser Merkmale über die bereits beschriebenen Grundlagen hinaus. Das Folgende ist eine Liste einiger gängiger Merkmale, die möglicherweise sein können oder nicht implementiert in einem bestimmten Programm.

Globale Eigenschaften

Optionale "globale" Eigenschaften können ebenfalls zulässig sein, die vor dem Deklarieren eines Abschnitts deklariert werden.[10]

Name/Wert -Trennzeichen

Einige Implementierungen erlauben einen Dickdarm (:) als Name/Wert -Abgrenzer (anstelle des gleichen Vorzeichens). Whitespace wird gelegentlich in der Linux -Welt verwendet.[8]

Hierarchie (Abschnitt Nisting)

Einige Parser erlauben das Verschachteln der Abschnitte mit Punkten als Pfadgrenzer:

[Sektion] Domain = Wikipedia.org [Abschnitt.Subsection] Foo = Bar 

In einigen Fällen wird auch eine relative Verschachtelung unterstützt, wobei ein führender Punkt das Nisten zum vorherigen Abschnitt ausdrückt:[8]

[Sektion] Domain = Wikipedia.org [.Subsection] Foo = Bar 

Historisch gesehen gab es auch Möglichkeiten zur Ausdrucksnistalternative zum Punkt (z. B. die Treiberdatei von IBM für Microsoft Windows DevList.ini, in dem die Backslash wurde als Nisttrennzeichen in Form von verwendet [ABC]; oder Microsoft Visual Studio's Aemanagr.ini Datei, die eine völlig andere Syntax in Form von verwendete [EIN] und B, c, p = v). Einige Parser boten überhaupt keine Nistpfeiler an und waren hierarchieblind, aber das Nesting konnte immer noch teilweise emuliert werden, indem die Tatsache ausgenutzt wurde [ABC] stellt eine eindeutige Kennung dar.

Kommentare

Einige Software unterstützt die Verwendung der Nummernschild (#) Alternative zum Semikolon für die Angabe von Kommentaren, insbesondere unter Unix, wo es spiegelt Hülse Kommentare. Das Zahlenzeichen kann in anderen Dialekten im Schlüsselnamen enthalten sein und als solche ignoriert werden. Beispielsweise kann die folgende Zeile als Kommentar in einem Dialekt interpretiert werden, erstellen jedoch eine Variable mit dem Namen "#var" in einem anderen Dialekt. Wenn der Wert "#var" ignoriert wird, würde er eine Pseudoimplementierung eines Kommentars bilden.

#var = a 

In einigen Implementierungen kann ein Kommentar überall in einer Zeile nach einem Raum (Inline -Kommentare) beginnen, einschließlich derselben Zeile nach Eigenschaften oder Abschnittserklärungen.

var = a       ; Dies ist ein Inline -Kommentar Foo = Bar # Dies ist ein weiterer Inline -Kommentar 

In anderen, einschließlich der Winapi Funktion GetPrivateProfilestring, Kommentare müssen selbst auf Zeilen auftreten.

Doppelte Namen

Die meisten Implementierungen unterstützen nur eine Eigenschaft mit einem angegebenen Namen in einem Abschnitt. Das zweite Ereignis eines Eigenschaftsnamens kann eine verursachen abbrechenEs kann ignoriert werden (und der Wert verworfen) oder das erste Ereignis (wobei der erste Wert verworfen) überschreibt. Einige Programme verwenden doppelte Eigenschaftsnamen, um mehrwertige Eigenschaften zu implementieren.

Die Interpretation mehrerer Abschnittserklärungen mit demselben Namen variiert ebenfalls. In einigen Implementierungen verschmelzen doppelte Abschnitte einfach ihre Eigenschaften, als ob sie zusammenhängend aufgetreten sind. Andere können einen Aspekt der INI -Datei abbrechen oder ignorieren.

Zitierte Werte

Einige Implementierungen ermöglichen es, Werte zu zitieren, typischerweise verwendet Anführungszeichen und/oder Apostrophe. Dies ermöglicht eine explizite Deklaration von Whitespace und/oder zum Zitieren von Sonderzeichen (gleichem Semikolon usw.). Die Standard -Windows -Funktion GetPrivateProfilestring Unterstützt dies und entfernen Anführungszeichen, die die Werte umgeben.

Flucht Charaktere

Einige Implementierungen bieten unterschiedliche Unterstützung für eine Escape-Zeichentypisch mit dem Backslash (\) folgt dem C Syntax. Einige Unterstützung "Linienanleitung", wobei ein Backslash unmittelbar von EOL (End-of-Line-Ende) verfolgt, wird der Zeilenumbruch ignoriert, und die "logische Linie" wird in der nächsten tatsächlichen Zeile aus der INI-Datei fortgesetzt. Es ist auch eine Implementierung verschiedener "Sonderzeichen" mit Fluchtsequenzen zu sehen.[11]

Gemeinsame Fluchtsequenzen
Reihenfolge Bedeutung
\\ \ (ein einzelnes Backslash, entkommen dem Fluchtcharakter)
\ ' Apostroph
\ " Anführungszeichen
\0 Nullcharakter
\a Glocke/Alarm/Audible
\b Rücktaste, Glockenfigur für einige Anwendungen
\t Tab -Zeichen
\r Kutschenrückkehr
\n Zeilenvorschub
\; Semikolon
\# Nummernschild
\ = Gleiches Zeichen
\: Doppelpunkt
\x???? Unicode Charakter mit hexadezimal Codepunkt korrespondierend zu ????

Zugriff auf Ini -Dateien

Unter Windows die Profil -API Ist die Programmierschnittstelle zum Lesen und Schreiben von Einstellungen aus klassischen Windows -.ini -Dateien. Zum Beispiel die GetPrivateProfilestring Funktion ruft eine Zeichenfolge aus dem angegebenen Abschnitt in einer Initialisierungsdatei ab. (Das "private" Profil steht im Gegensatz zu GetProfileString, was abreißt von Win.ini.))

Die folgende Probe C Das Programm zeigt die Lesungseigenschaftswerte aus der obigen Beispiel -Ini -Datei (lassen Sie den Namen der Konfigurationsdatei sein dbettings.ini):

#enthalten  int hauptsächlich(int argc, _Tchar *argv[]) {   _Tchar dbserver[1000];   int dbport;   GetPrivateProfilestring("Datenbank", "Server", "127.0.0.1", dbserver, Größe von(dbserver) / Größe von(dbserver[0]),, ".\\dbettings.ini ");   dbport = GetPrivateProfileInt("Datenbank", "Hafen", 143, ".\\dbettings.ini ");   // n.b. WritePrivateProfileInt () existiert nicht   Rückkehr 0; } 

Der dritte Parameter der GetPrivateProfilestring -Funktion ist der Standardwert, der "127.0.0.1" bzw. 143 in den oben genannten Funktionsaufrufen beträgt. Wenn das für diesen Parameter gelieferte Argument null ist, ist die Standardeinstellung eine leere Zeichenfolge "".

Unter UNIX gibt es viele verschiedene Konfigurationsbibliotheken, um auf INI -Dateien zuzugreifen. Sie sind oft bereits in Frameworks und Toolkits enthalten. Beispiele für INI -Parsers für UNIX umfassen Glib, Iniparser und libconfini.

Vergleich von Ini -Parsers

Name Abschnitte Unterstützung Abschnitt Nisting Support Erkennung behinderte Eingabe[12] Multi-Line-Unterstützung[13] Werttypen Unterstützung lesen/schreiben Plattform Lizenz Programmiersprache Neueste Versionsversion
ConfigParser[14][15] Ja Ja Nein Nicht standardmäßig[16] Boolesche, Nummer, Saite Lesen + Schreiben *BSD, Linux, Mac OS, Fenster PSFL C (Implementierung), Python (Verwendungszweck) 3.9.7[17]
Glib[18] Ja Ja Nein Nein Boolesche, Nummer, Saite, Array Lesen + Schreiben *BSD, Linux, Mac OS, Fenster LGPL C 2.66,7 (11. Februar 2021; Vor 17 Monaten) [±][19]

[20]

Inifile[21] Ja Nein Nein Nein Boolesche, Nummer, Saite Lesen + Schreiben *BSD, Linux, Mac OS, Fenster Apache gehen 1.2.0[22]
inih[23] Ja Nein Nein Nicht standardmäßig[24] Boolesche, Nummer, Saite Lesen *BSD, Linux, Mac OS, Fenster BSD C 53[25]
Iniparser[26] Ja Nein Nein Ja Boolesche, Nummer, Saite Lesen + Schreiben *BSD, Linux, Mac OS, Fenster MIT C 4.1[27]
Java (über java.util.properties)[28] Nein Nein Nein Ja Saite Lesen + Schreiben Plattform-Agnostic Dual-Lizenz: Gpl Version 2 mit Ausnahme von Klassenpfad,[29] und ein proprietär Lizenz.[30] C (Implementierung), Java (Verwendungszweck) 18.0.1.1 (2. Mai 2022; Vor 2 Monaten) [±]

17.0.3.1 Lts (2. Mai 2022; Vor 2 Monaten) [±]
11.0.15.1 LTS (2. Mai 2022; Vor 2 Monaten[31]) [±]
8U333 LTS (2. Mai 2022; Vor 2 Monaten[32]) [±]

libconfini[33] Ja Ja Ja Ja Boolesche, Nummer, Saite, Array Lesen *BSD, Linux, Mac OS, Fenster Gpl C 1.16.2[34]
Php (über Parse_ini_file ())[35] Ja Ja Ja Nein Nummer, Saite, Null Lesen Linux, Mac OS, Fenster PHP -Lizenz v3.01[36] C (Implementierung), Php (Verwendungszweck) 7.4.30[37] Edit this on Wikidata (9. Juni 2022; Vor 52 Tagen))
Pyini[38] Ja Nein Ja Ja Boolesche, Nummer, Saite Lesen + Schreiben Plattform-Agnostic Gpl Python 1.0[39]
Rudeconfig[40] Ja Nein Nein Nein Boolesche, Nummer, Saite Lesen + Schreiben Linux, Fenster Gpl C ++ Eingestellt - letzte Version ist 5.0.5 ab November 2009[41]
Windows -API Ja Nein Nein Nein Nummer, Saite, Struktur Read + Write (nicht zerstörerisch) Fenster Proprietär C 21H2 (10.0.22000.832) (21. Juli 2022; vor 10 Tagen[42]) [±]
Wein (Implementierung von Windows -API)) Ja Nein Nein Nein Nummer, Saite, Struktur Read + Write (nicht zerstörerisch) Linux, Mac OS, Fenster LGPL C 7.0[43] Edit this on Wikidata 18. Januar 2022; vor 6 Monaten
Name Abschnitte Unterstützung Abschnitt Nisting Support Erkennung behinderte Eingabe Multi-Line-Unterstützung Werttypen Unterstützung lesen/schreiben Plattform Lizenz Programmiersprache Neueste Versionsversion

Dateizuordnung

Die Initialisierungsdateizuordnung erstellt eine Zuordnung zwischen einer INI -Datei und der Datei Registrierung.[44][45] Es wurde mit Windows NT und Windows 95 eingeführt, um vom Speichern von Einstellungen in klassischen .ini -Dateien auf die Neue zu migrieren Windows -Registrierung. Dateizuordnung fängt die Profil -API -Aufrufe und verwenden Einstellungen aus der Inifilemapping Der Abschnitt "Registrierung", leitet und schreibt an geeignete Orte in der Registrierung.

Mit dem folgenden Beispiel kann ein String -Anruf getätigt werden, um das abzurufen Name Schlüssel aus dem Eigentümer Abschnitt aus einer Einstellungsdatei mit dem Namen beispielsweise, beispielsweise, dbettings.ini. Der zurückgegebene Wert sollte die Zeichenfolge "John Doe" sein:

GetPrivateProfilestring ("Besitzer", "Name", ..., "C: \\ Programme \\ OldProgram \\ dbettings.ini");

Ini Mapping enthält diesen Profil -API -Anruf, ignoriert einen Pfad im angegebenen Dateinamen und überprüft, ob ein Registrierungsschlüssel vorhanden ist, der dem Dateinamen im Verzeichnis entspricht:

HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows NT \ Currentversion \ Inifilemapping

Wenn dies vorhanden ist, wird nach einem Eintragsnamen gesucht, der dem angeforderten Abschnitt entspricht. Wenn ein Eintrag gefunden wird, verwendet INI -Mapping seinen Wert als Zeiger auf einen anderen Teil der Registrierung. Anschließend wird die angeforderte Ini -Einstellung in diesem Teil der Registrierung nachgeschlagen.

Wenn kein passender Eintragsname gefunden wird und es einen Eintrag unter dem gibt (Standard) Eingabenname, INI -Mapping verwendet dies stattdessen. Daher benötigt jeder Abschnittsname keinen eigenen Eintrag.

Hkey_local_maachine \ software \ ... \ inifilemapping \ dbettings.ini
(Standard) @USR: Software \ OldProgs \ Inisettings \ All
Datenbank USR: Software \ OldProgs \ Inisettings \ db

In diesem Fall ist der Profilaufruf für den Abschnitt [Eigentümer] durch::

Hkey_current_user \ software \ oldProgs \ Inisettings \ All
Name John Doe
Organisation ACME -Produkte

bei dem die "Name"Registrierungseintragsname entspricht dem angeforderten INI -Schlüssel. Der Wert von" John Doe "wird dann an den Profilaufruf zurückgegeben. In diesem Fall verhindert das @ -Präfix auf der Standardeinstellung alle Lesevorgänge, wenn Sie zur DBSettings.ini -Datei auf gehen Festplatte. Das Ergebnis ist, dass in der INI -Datei keine Einstellungen in der Registrierung nicht gesucht werden.

Das "Datenbank"Der Registrierungseintrag enthält nicht das @ -Präfix für den Wert; somit für den Abschnitt [Datenbank] nur, Einstellungen in der Registrierung werden zunächst gefolgt von Einstellungen in der dbettings.ini -Datei auf der Festplatte.

Alternativen

Beginnen mit Windows 95Microsoft begann stark für die Verwendung der Windows -Registrierung über die INI -Datei.[46] INI -Dateien sind in der Regel auf zwei Ebenen (Abschnitte und Eigenschaften) begrenzt und verarbeiten Binärdaten nicht gut. Diese Entscheidung war jedoch nicht immun gegen Kritik, da die Registrierung monolithisch, undurchsichtig und binär ist, mit dem Dateisystem synchronisiert sein muss und einen einzelnen Ausfallpunkt für das Betriebssystem darstellt.[47]

Später Xml-Basierte Konfigurationsdateien wurden zu einer beliebten Wahl für die Codierungskonfiguration in Textdateien. XML ermöglicht willkürlich komplexe Werte und Verschachtelung und verfügt über Standardmechanismen für die Codierung Binärdaten.

In jüngerer Zeit, Datenserialisierung Formate wie z. JSON, Toml, und Yaml kann als Konfigurationsformate dienen. Diese drei alternativen Formate können willkürlich nisten, haben jedoch eine andere Syntax als die INI -Datei. Unter ihnen ähnelt Toml in INI am besten, aber die Idee, Toml absichtlich mit einer großen Teilmenge von INI kompatibel zu machen, wurde abgelehnt.[48]

Die neuesten INI -Parser ermöglichen jedoch das gleiche willkürliche Nesting von Xml, JSON, Toml, und Yamlbieten eine gleichwertige Unterstützung von Typisierte Werte und UnicodeObwohl der "informelle Status" von INI -Dateien behalten, indem mehrere Syntaxe für das Gleiche ausgedrückt werden.[49]

Siehe auch

Verweise

  1. ^ Microsoft TechNet: Konfigurieren eines INI -Dateielements
  2. ^ .Conf -Initialisierungsdateien
  3. ^ Microsoft: Windows NT Workstation Resource Kit
  4. ^ Git-Config-Konfigurationsdatei [1]
  5. ^ Rasmus Lerdorf, Kevin Tatroe, Peter MacIntyre."PHP programmieren". Abschnitte "Parse_ini_file", "Erweiterung ini -Einträge" usw.
  6. ^ Christian Wenz."PHP und MySQL -Phrassebook". Abschnitt "Ini -Dateien analysieren". Zitat: "... Das INI -Dateiformat ... wurde in der Windows -Welt sehr weit verbreitet, aber heute auch die Konfiguration von Softwareprodukten wie Php. Zum Beispiel ... Php.ini"
  7. ^ Codrut neagu, "Warum gibt es zwei Desktop.ini -Dateien auf meinem Desktop und was machen sie?".
  8. ^ a b c Libconfinis Bibliotheksfunktion Handbuch
  9. ^ "GetPrivateProfilestring -Funktion". Microsoft Developer Network. Microsoft. Abgerufen 2012-06-02.
  10. ^ Apache -Dokumentation für org.apache.commons.configuration2.iniconfiguration, Die Apache Software Foundation
  11. ^ Cloanto -Implementierung
  12. ^ Es ist eine übliche Praxis unter den Autoren von INI -Dateien, unerwünschte Einträge zu "kommentieren", um sie zu deaktivieren, anstatt sie vollständig zu entfernen. Siehe den Schlüssel a Im folgenden Beispiel:
    [Sektion]
    #a = a
    B = b
  13. ^ Die Standardsyntax für die Liniendauer bezieht sich hier auf die Abfolge von a Backslash gefolgt von Zeilenumbruch, wie von Iniparser, libconfini und implementiert java.util.properties
  14. ^ Fredrik Lundh."Python Standard Library". 2001. Abschnitt "Das Konfigurationsmodul". p. 143
  15. ^ "ConfigParser - Konfigurationsdatei -Parser".
  16. ^ Befolgen Sie die Syntax der Sprache, mit der sie arbeiten soll (Python) Um einen Knoten über mehrere Zeilen zu überspannen, erfordert configParser eine tiefere Vertiefung in den folgenden Zeilen statt der gemeinsameren Backslash + Zeilenumbruch (sehen: configParser - Konfigurationsdatei -Parser)
  17. ^ Python -Dokumentation nach Version
  18. ^ Glibschlüssel -Wert -Datei -Parser
  19. ^ Withnall, Philip (11. Februar 2021). "Glib 2.66.7". GNOME FTP-Release (Mailingliste). Abgerufen 12. Februar 2021.
  20. ^ Veröffentlichungen · gnom/glib
  21. ^ Inifile -Dokumentation
  22. ^ Veröffentlichungen · Inifile
  23. ^ Inih Readme
  24. ^ Verwenden der Einführung, explizit nach dem Ansatz von ConfigParser (siehe Dokumentation des Projekts für weitere Informationen)
  25. ^ Veröffentlichungen · Benhoyt/Inih
  26. ^ Iniparser -Dokumentation
  27. ^ Veröffentlichungen · ndevilla/iniparser
  28. ^ Eigenschaften (Java -Plattform SE 8)
  29. ^ "OpenJDK: GPLV2 + ClassPath -Ausnahme". Openjdk.java.net. 1989-04-01. Abgerufen 2016-02-09.
  30. ^ "BCL für Java SE". Oracle.com. 2013-04-02. Abgerufen 2016-02-09.
  31. ^ "JDK veröffentlicht". Oracle Corporation. Abgerufen 2022-01-21.
  32. ^ "JDK veröffentlicht". Oracle Corporation. Abgerufen 2022-01-21.
  33. ^ Libconfini -Dokumentation
  34. ^ Veröffentlichungen · madmurphy/libconfini
  35. ^ Php. "Parse_ini_file () - Analysieren einer Konfigurationsdatei ". Offizielle PHP -Dokumentation. Abgerufen 2022-07-19.
  36. ^ PHP -Lizenz v3.01[2]
  37. ^ "Version 7.4.30". 9. Juni 2022. Abgerufen 11. Juni 2022.
  38. ^ Pyini
  39. ^ Tags · Whoatemybutter / Pyini
  40. ^ RUDECONFIG -Dokumentation
  41. ^ Veröffentlichungen · rudeconfig
  42. ^ "21. Juli 2022 - KB5015882 (OS Build 22000.832)". Microsoft -Unterstützung. Microsoft. 21. Juli 2022.
  43. ^ "Wein 7.0 freigelassen". 18. Januar 2022. Abgerufen 18. Januar 2022.
  44. ^ Initialisierungsdateien und die Registrierung, Windows NT Workstation Resource Kit, Microsoft Technet
  45. ^ Verwaltung der NT -Registrierung, Verwalten der Windows NT -Registrierung, Paul Robichaux, O'Reilly Media
  46. ^ Das Systemregister
  47. ^ War die Windows -Registrierung eine gute Idee? - Horror codieren
  48. ^ "Kommentar zu" .ini Kompatibilität ist ein würdiges Ziel "Problem auf Github".
  49. ^ libconfini/readme

Externe Links