Fichier INI

INI
Extension du nom de fichier
.ini
Type de média Internet
texte/plain, application/textedit, zz-application/zz-winassoc-ini
Type de formatFichier d'initialisation/configuration

Un fichier INI est un fichier de configuration pour un logiciel informatique constitué d'un contenu textuel avec une structure et une syntaxe comprenant des paires clé-valeur pour les propriétés et des sections qui organisent les propriétés. [1] Le nom de ces fichiers de configuration vient de l' extension de nom de fichier INI , pour initialisation , utilisée dans le système d'exploitation MS-DOS qui a popularisé cette méthode de configuration logicielle. Le format est devenu un standard informel dans de nombreux contextes de configuration, mais de nombreuses applications sur d'autres systèmes d'exploitation utilisent des extensions de nom de fichier différentes, telles que conf et cfg . [2]

Histoire

Le principal mécanisme de configuration logicielle sous Windows était à l'origine un format de fichier texte composé de lignes de texte avec une paire clé-valeur par ligne, organisées en sections. Ce format était utilisé pour les composants du système d'exploitation, tels que les pilotes de périphérique, les polices et les lanceurs de démarrage. Les fichiers INI étaient également généralement utilisés par les applications pour stocker des paramètres individuels. [3]

Le format a été conservé sur les plates-formes Microsoft Windows 16 bits jusqu'à Windows 3.1x . À partir de Windows 95, Microsoft a favorisé l'utilisation du registre Windows et a commencé à éloigner les développeurs de l'utilisation des fichiers INI pour la configuration. Toutes les versions ultérieures de Windows ont utilisé le registre Windows pour la configuration du système, mais les applications basées sur .NET Framework utilisent des fichiers XML .config spéciaux . Les fonctions du fichier d'initialisation sont toujours disponibles sous Windows et les développeurs peuvent toujours les utiliser.

Outre les logiciels Windows, les logiciels indépendants de la plate-forme peuvent utiliser ce format de fichier pour la configuration. Certains fichiers de configuration de type Unix utilisent également un format similaire. INI est lisible par l'homme et simple à analyser, c'est donc un format utilisable pour les fichiers de configuration qui ne nécessitent pas une complexité beaucoup plus grande.

Prévalence

Ce qui suit est une liste non exhaustive des emplacements dans lesquels apparaissent les fichiers .INI.

Exemple

L'exemple de fichier suivant comporte deux sections : une pour le propriétaire du logiciel et une pour une connexion à la base de données de paie. Les commentaires enregistrent la dernière personne qui a modifié le fichier et la raison de la modification.

; dernière modification le 1er avril 2001 par John Doe 
[propriétaire] 
nom = organisation John Doe = Acme Widgets Inc.  
  

[base de données] 
; utilisez l'adresse IP au cas où la résolution du nom du réseau ne fonctionnerait pas 
serveur = 192.0.2.62 port = 143 fichier = "payroll.dat"       
  
  

Format

Dans son sens plus large, .INI est un format informel qui se prête bien à une implémentation ad hoc tout en restant configurable par l'homme. Par conséquent, de nombreuses spécifications différentes (où parfois une implémentation d'analyseur est la seule spécification jamais écrite) existent, appelées dialectes .INI .

Alors que les interprétations de .INI dépendent beaucoup des goûts personnels et de l'environnement informatique (par exemple : le besoin de données exactes en espaces ; le besoin d'informations sur le type de champ ; Windows préférant le pliage de la casse, Unix préférant le respect de la casse ; #les commentaires délimités étant empruntés aux scripts Unix) , rendant ainsi le .INI sujet à la prolifération, il existe un noyau dur auquel le .INI est généralement associé : basé sur du texte et basé sur des lignes, les espaces sont supprimés, les lignes vides et les lignes de commentaires (par exemple ; registers to system-wide mailcap, # workaround for d5cb328) sont ignorées, les crochets indiquant sections (par exemple [Unit], [branch "master"]), les données sous forme de paires clé-valeur souvent délimitées par un signe égal (ASCII 0x3D) (par exemple IconFile=Folder.ico, time machine = yes).

Il existe des tentatives pour créer des analyseurs capables de prendre en charge autant de dialectes que possible [13] et dans son interprétation la plus compliquée, le format .INI est capable d'exprimer des expressions S arbitraires , ce qui le rend équivalent aux formats standardisés comme XML ou JSON , bien qu'avec une syntaxe qui n’est pas gravée dans le marbre et qui peut sembler plus confortable à certains.

Comme le format de fichier .INI n'est pas défini de manière rigide, de nombreux analyseurs prennent en charge des fonctionnalités allant au-delà de celles qui forment le noyau commun. Le support mis en œuvre est très volatil.

Paires clé-valeur

Les données dans .INI sont conservées dans des paires clé-valeur appelées key ou property . Key peut ainsi faire référence à l'intégralité de la paire clé-valeur ou uniquement à sa clé. Une valeur est également appelée nom de propriété . Dans sa représentation textuelle, la paire clé-valeur est représentée soit par une ligne, soit par une multiligne où le début de la valeur est indiqué par un délimiteur , le plus souvent un signe égal ( =, ASCII 0x3D) mais parfois aussi un deux-points ( :, ASCII 0x3A ) ou des espaces (occasionnellement utilisés dans le monde GNU [13] ). La clé de la clé apparaît à gauche du délimiteur, est souvent non vide et ne doit pas contenir le délimiteur. Certaines versions autorisent les séquences d'échappement dans la valeur.

Dans l'implémentation Windows, le signe égal et le point-virgule sont des caractères réservés et ne peuvent pas apparaître dans la clé. Tout espace entourant la clé est supprimé par l'analyseur. La valeur peut contenir n'importe quel caractère (dans le style Windows, aucun espace n'entoure le délimiteur : par exemple IconFile=Folder.ico).

Les paires clé-valeur peuvent ressembler textuellement à :

clé = clé=v 
nom = valeur sem = ; semver = v5822.433.2   


Sections

Les paires clé-valeur peuvent être regroupées sous une section . Certains dialectes .INI exigent que chaque paire clé-valeur se trouve dans une section, d'autres autorisent ce que l'on appelle les propriétés globales . [14] Lorsque les paires clé-valeur sont regroupées, le nom de la section apparaît seul sur une ligne, entre crochets ( [, ASCII 0x5B et ], ASCII 0x5D) et s'applique à toutes les paires clé-valeur des lignes suivantes jusqu'à une autre section. est déclaré. Il n'y a pas de délimiteur explicite de « fin de section » (comme par exemple celui de XML </tag>. Ainsi, les sections ne peuvent pas, syntaxiquement, être arbitrairement imbriquées. Si nécessaire, l'imbrication peut être implémentée en aplatissant la hiérarchie et en concaténant avec un caractère délimiteur personnalisé à l'intérieur du nom de section (souvent ., ASCII 0x2E). Un niveau d'imbrication est souvent pris en charge, appelé sous-sections .

Exemple de document .INI employant des sections imbriquées :

[projet] 
nom = service de location de vergers (avec application) région cible = « Bay Area » ; À FAIRE : annoncer les postes vacants équipe juridique = (vacant)  
  

  

[fruit "Pomme"] 
problèmes de marque = goût prévisible = connu  
  

[fruit.Date] 
goût = roman Problèmes de marque = "vraiment improbable"  


[fruit "Framboise"] 
problèmes anticipés = "logistique (fruit fragile)" Problèmes de marque = \
 possible  
 

[fruit.raspberry.proponents.fred] 
date = 23/11/2021, 08:54 +0900 commentaire = "J'aime les fruits rouges." [fruit "Date/proponents/alfred"] commentaire : Pourquoi,   \
 \
 \
 J'achèterais des dattes. # pliage : "\\\\\nn" est-il interprété comme "\\n" ou "\n" ? # Ou est-ce que "\\\\" empêche le pliage ? editor = Mon nom peut contenir un \ \
 newline.  
  

    


  

Hiérarchie (imbrication de sections)

Certains analyseurs autorisent l'imbrication de sections, en utilisant des points comme délimiteurs de chemin :

[section] 
domaine = exemple.com  

[section.subsection] 
foo = barre  

Dans certains cas, l'imbrication relative est également prise en charge, où un point de début exprime l'imbrication dans la section précédente : [13]

[section] 
domaine = exemple.com  

[.subsection] 
foo = barre  

Historiquement, des moyens d'exprimer une alternative d'imbrication au point ont également existé (par exemple, le fichier de pilote d'IBM pour Microsoft Windows devlist.ini, dans lequel la barre oblique inverse était utilisée comme délimiteur d'imbrication sous la forme de [A\B\C]; ou le fichier de Microsoft Visual Studio AEMANAGR.INI, qui utilisait une syntaxe complètement différente. sous la forme de [A]et B,C,P = V). Certains analyseurs n'offraient pas du tout de support d'imbrication et étaient aveugles à la hiérarchie, mais l'imbrication pouvait toujours être partiellement émulée en exploitant le fait qui [A.B.C]constitue un identifiant unique.

Sensibilité à la casse

Les noms de section et de propriété dans Windows ne sont pas sensibles à la casse . [15] La plupart des interprétations .INI de style Unix interdisent complètement le pliage de casse, bien que le pliage de casse pour le nom de section [16] ou la clé [17] soit parfois autorisé.

commentaires

Une ligne avec des espaces de fin contigus suivis d'un point-virgule ( ;, ASCII 0x3E) indique un commentaire . Certains dialectes .INI autorisent en outre l'utilisation du signe dièse ( #, ASCII 0x23) pour désigner un commentaire, reflétant les commentaires du shell Unix . Certains dialectes .INI, mais pas tous, autorisent un commentaire sur une ligne de paire clé-valeur ou une ligne de section (appelée commentaire en ligne ), où certains nécessitent un espace séparant la valeur ou le crochet fermant la section du commentaire. Le signe dièse peut néanmoins être inclus dans le nom de la clé dans certains dialectes et ignoré comme tel. Les lignes de commentaires sont conçues pour être ignorées par un analyseur.

#! /bin/convertir-ini-en-perl | perl | ssh wikipedia.org télécharger --sanitise=no 
; Ambigu sans connaissance approfondie du dialecte .INI :
 ; la valeur est-elle "live" ou "live # dangereusement" ? 
J'aime = vivre # dangereusement   

#var = un

var = une ; Ceci est un commentaire en ligne foo = bar # Ceci est un autre commentaire en ligne         
       

Dans le dialecte GetPrivateProfileString de WinAPI , les commentaires doivent apparaître seuls sur les lignes.

Ordre des sections et des propriétés

L'ordre des propriétés dans une section et l'ordre des sections dans un fichier n'ont pas d'importance.

Noms en double

La plupart des implémentations ne prennent en charge qu'une seule propriété portant un nom donné dans une section. La deuxième occurrence d'un nom de propriété peut provoquer un abort , elle peut être ignorée (et la valeur supprimée) ou elle peut remplacer la première occurrence (avec la première valeur supprimée). Certains programmes utilisent des noms de propriété en double pour implémenter des propriétés à valeurs multiples.

L'interprétation de plusieurs déclarations de section portant le même nom varie également. Dans certaines implémentations, les sections en double fusionnent simplement leurs propriétés, comme si elles se produisaient de manière contiguë. D'autres peuvent abandonner ou ignorer certains aspects du fichier INI.

Valeurs citées

Certaines implémentations permettent de mettre les valeurs entre guillemets, généralement en utilisant des guillemets doubles et/ou des apostrophes . Cela permet une déclaration explicite des espaces et/ou la citation de caractères spéciaux (égaux, point-virgule, etc.). La fonction Windows standard GetPrivateProfileString prend en charge cela et supprimera les guillemets qui entourent les valeurs.

Suite de la ligne

Émulant la syntaxe C , certains dialectes autorisent le pliage de ligne par une barre oblique inverse ( \, ASCII 0x5C) comme dernier caractère d'une ligne. [18] Dans une telle continuation de ligne , les barres obliques inverses suivies immédiatement par EOL (fin de ligne) provoquent la suppression de la barre oblique inverse et du saut de ligne, transformant les lignes du document en lignes logiques .

Caractères d'échappement

Certains dialectes offrent une prise en charge variable de l'échappement de caractères , généralement avec le caractère barre oblique inverse ( \, ASCII 0x5C) comme métacaractère et émulant la syntaxe C. [19]

Il n'est pas judicieux d'interpréter aveuglément les séquences d'échappement, car certaines spécifications désactivent explicitement leur métacaractère pour les séquences d'échappement courantes. [20] [21]

Séquences d'échappement courantes
Séquence Signification
\\ \ (une seule barre oblique inverse , échappant au caractère d'échappement)
\' Apostrophe
\" Double citation
\0 Caractère nul
\a Cloche/Alerte/Audible
\b Retour arrière , caractère Bell pour certaines applications
\t Caractère de tabulation
\r Retour en calèche
\n Saut de ligne
\; Point-virgule
\# Signe numérique
\= Signe égal
\: Côlon
\xhhhh Caractère Unicode avec le point de code 0xhhhh, codé en UTF-8 ou en codage local

Accéder aux fichiers INI

Sous Windows, l' API Profile est l'interface de programmation utilisée pour lire et écrire les paramètres des fichiers .ini Windows classiques. Par exemple, la fonction GetPrivateProfileString récupère une chaîne de la section spécifiée dans un fichier d'initialisation. (Le profil "privé" contraste avec GetProfileString, qui est extrait de WIN.INI .)

L'exemple de programme C suivant illustre la lecture des valeurs de propriété à partir de l'exemple de fichier INI ci-dessus (que le nom du fichier de configuration soit dbsettings.ini) :

#include <windows.h> 

int principal ( int argc , _TCHAR * argv [])    
{
  Serveur de base de données _TCHAR [ 1000 ]; 
  int port de données ; 
  GetPrivateProfileString ( "base de données" , "serveur" , "127.0.0.1" , serveur de base de données , sizeof ( serveur de base de données ) / taille de ( serveur de base de données [ 0 ]), ". \\ dbsettings.ini" );       
  dbport = GetPrivateProfileInt ( "base de données" , "port" , 143 , ". \\ dbsettings.ini" );     
  // NB WritePrivateProfileInt() n'existe pas, seulement WritePrivateProfileString()
  renvoie 0 ; 
}

Le troisième paramètre de la fonction GetPrivateProfileString est la valeur par défaut, qui est respectivement "127.0.0.1" et 143 dans les deux appels de fonction ci-dessus. Si l'argument fourni pour ce paramètre est NULL , la valeur par défaut est une chaîne vide, "" .

Sous Unix, de nombreuses bibliothèques de configuration différentes existent pour accéder aux fichiers INI. Ils sont souvent déjà inclus dans les cadres et les boîtes à outils. Des exemples d'analyseurs INI pour Unix incluent GLib, iniparser et libconfini.

Comparaison des analyseurs INI

Nom Prise en charge des sections Prise en charge de l'imbrication de sections Reconnaissance d'entrée désactivée [22] Prise en charge multiligne [23] Types de valeur Prise en charge de lecture/écriture Plate-forme Licence Langage de programmation Dernière version
Python ConfigParser [24] [25] Oui Oui Non Non standard [26] Booléen , Nombre , Chaîne Lire + Écrire *BSD , Linux , macOS , Windows PSFL C (implémentation), Python (utilisation) 3.9.7 [27]
GLib [28] Oui Oui Non Non Booléen , Nombre , Chaîne , Tableau Lire + Écrire *BSD , Linux , macOS , Windows LGPL C 2.66.7 (11 février 2021 ; il y a 3 ans ) [±] [29] ( 2021-02-11 )

[30]

fichier ini [31] Oui Non Non Non Booléen , Nombre , Chaîne Lire + Écrire *BSD , Linux , macOS , Windows Apache Aller 1.2.0 [32]
inih [33] Oui Non Non Non standard [34] Booléen , Nombre , Chaîne Lire *BSD , Linux , macOS , Windows BSD C 53 [35]
analyseur initial [36] Oui Non Non Oui Booléen , Nombre , Chaîne Lire + Écrire *BSD , Linux , macOS , Windows MIT C 4.1 [37]
Java (via java.util.Properties) [38] Non Non Non Oui Chaîne Lire + Écrire Indépendant de la plate-forme Double licence : GPL version 2 avec exception de chemin de classe, [39] et une licence propriétaire . [40] C (implémentation), Java (utilisation) 22.0.1 (19 avril 2024 ; il y a 0 jours ) [±] ( 2024-04-19 )

21.0.0 LTS (19 septembre 2023 ; il y a 7 mois ) [±] 17.0.6 LTS (18 février 2023 ; il y a 14 mois ) [±] 11.0.17 LTS (18 octobre 2022 ; il y a 18 mois [41] ) [±] 8u401 LTS (16 janvier 2024 ; il y a 3 mois [42] ) [±] ( 2023-09-19 )
 ( 2023-02-18 )
 ( 2022-10-18 )
 ( 2024-01-16 )

libconffini [43] Oui Oui Oui Oui Booléen , Nombre , Chaîne , Tableau Lire *BSD , Linux , macOS , Windows GPL C 1.16.2 [44]
PHP (via parse_ini_file()) [45] Oui Oui Oui Non Nombre , Chaîne , Null Lire Linux , macOS , Windows Licence PHP v3.01 [46] C (implémentation), PHP (utilisation) 8.3.6 [47] (11 avril 2024 ; il y a 8 jours )  ( 11 avril 2024 )
PyINI [48] Oui Non Oui Oui Booléen , Nombre , Chaîne Lire + Écrire Indépendant de la plate-forme GPL Python 1,0 [49]
python-ini [50] Oui Non Non Oui Booléen , Nombre , Chaîne , Null Lire + Écrire Indépendant de la plate-forme BSD Python 1.1.0
Configuration grossière [51] Oui Non Non Non Booléen , Nombre , Chaîne Lire + Écrire Linux , Windows GPL C++ Arrêté – la dernière version est la 5.0.5, de novembre 2009 [52]
API Windows Oui Non Non Non Nombre , Chaîne , Structure Lecture + écriture (non destructif) les fenêtres Propriétaire C 23H2 (10.0.22631.3447) (9 avril 2024 ; il y a 10 jours [53] ) [±] ( 2024-04-09 )
Wine (implémentation de l'API Windows ) Oui Non Non Non Nombre , Chaîne , Structure Lecture + écriture (non destructif) Linux , macOS , Windows LGPL C 9,0 [54] 16 janvier 2024 ; il y a 3 mois ( 16 janvier 2024 )
Analyseur de configuration Rust [55] Oui Non Non Non Booléen , Nombre , Chaîne Lire + Écrire *BSD , Linux , macOS , Windows MIT ou LGPL v3.0+ Rouiller 3.0.2 [55] 11 septembre 2022 ; il y a 3 mois
java-ini-analyseur [56] Oui Non Oui Oui Booléen , Nombre , Chaîne Lire + Écrire Indépendant de la plate-forme Apache Java 1.4 [55] 29 décembre 2022 ; Il ya 3 jours
Nom Prise en charge des sections Prise en charge de l'imbrication de sections Reconnaissance d'entrée désactivée Prise en charge multiligne Types de valeur Prise en charge de lecture/écriture Plate-forme Licence Langage de programmation Dernière version

Mappage de fichiers

Le mappage du fichier d'initialisation crée un mappage entre un fichier INI et le registre Windows . [57] [58] Il a été introduit avec Windows NT et Windows 95 comme moyen de migrer du stockage des paramètres dans les fichiers .ini classiques vers le nouveau registre. Le mappage de fichiers intercepte les appels de l'API Profile et, à l'aide des paramètres de la section Registre IniFileMapping , dirige les lectures et les écritures vers les emplacements appropriés du registre.

En utilisant l'exemple ci-dessous, un appel de chaîne pourrait être effectué pour récupérer la clé de nom de la section propriétaire à partir d'un fichier de paramètres appelé, par exemple, dbsettings.ini . La valeur renvoyée doit être la chaîne « John Doe » :

GetPrivateProfileString("propriétaire", "nom", ... , "c:\\programs\\oldprogram\\dbsettings.ini");

Le mappage INI prend cet appel d'API de profil, ignore tout chemin dans le nom de fichier donné et vérifie s'il existe une clé de registre correspondant au nom de fichier sous le répertoire :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\ CurrentVersion\IniFileMapping

Si cela existe, il recherche un nom d'entrée correspondant à la section demandée. Si une entrée est trouvée, le mappage INI utilise sa valeur comme pointeur vers une autre partie du registre. Il recherche ensuite le paramètre INI demandé dans cette partie du registre.

Si aucun nom d'entrée correspondant n'est trouvé et qu'il existe une entrée sous le nom d'entrée (par défaut) , le mappage INI l'utilise à la place. Ainsi, chaque nom de section n'a pas besoin de sa propre entrée.

HKEY_LOCAL_MACHINE\Software\...\IniFileMapping\dbsettings.ini
(Défaut) @USR : Logiciel\oldprogs\inisettings\all
base de données USR : Logiciel\oldprogs\inisettings\db

Ainsi, dans ce cas, l'appel de profil pour la section [owner] est mappé vers :

HKEY_CURRENT_USER\Software\oldprogs\inisettings\all
nom John Doe
organisation Produits Acmé

où le nom de l'entrée de registre " name " correspond à la clé INI demandée. La valeur de « John Doe » est ensuite renvoyée à l'appel de profil. Dans ce cas, le préfixe @ par défaut empêche toute lecture d'accéder au fichier dbsettings.ini sur le disque. Le résultat est que les paramètres introuvables dans le registre ne sont pas recherchés dans le fichier INI.

L'entrée de registre « base de données » n'a pas le préfixe @ sur la valeur ; ainsi, pour la [database]section uniquement , les paramètres du registre sont pris en premier, suivis des paramètres du fichier dbsettings.ini sur le disque.

Alternatives

À partir de Windows 95 , Microsoft a commencé à promouvoir fortement l'utilisation du registre Windows plutôt que des fichiers INI. [59] Les fichiers INI sont généralement limités à deux niveaux (sections et propriétés) et ne gèrent pas bien les données binaires. Cette décision n'a cependant pas été à l'abri de critiques, car le registre est monolithique, opaque et binaire, doit être synchronisé avec le système de fichiers et représente un point de défaillance unique pour le système d'exploitation. [60]

Plus tard, les fichiers de configuration basés sur XML sont devenus un choix populaire pour coder la configuration dans des fichiers texte. [ citation nécessaire ] XML permet des niveaux et une imbrication arbitrairement complexes, et dispose de mécanismes standard pour coder les données binaires .

Plus récemment, les formats de sérialisation des données , tels que JSON , TOML et YAML, peuvent servir de formats de configuration. Ces trois formats alternatifs peuvent s'imbriquer arbitrairement, mais ont une syntaxe différente de celle du fichier INI. Parmi eux, TOML ressemble le plus à INI, mais l'idée de rendre TOML délibérément compatible avec un large sous-ensemble d'INI a été rejetée. [61]

Les analyseurs INI les plus récents autorisent cependant le même niveau arbitraire d'imbrication de XML , JSON , TOML et YAML , offrent un support équivalent des valeurs typées et Unicode , tout en conservant le « statut informel » des fichiers INI en autorisant plusieurs syntaxes pour exprimer la même chose. . [62]

Voir également

Les références

  1. ^ Microsoft TechNet : configurer un élément de fichier Ini
  2. ^ Fichiers d'initialisation .conf
  3. ^ Microsoft : Kit de ressources pour station de travail Windows NT
  4. ^ Microsoft Apprendre (08/02/2022). "Comment personnaliser les dossiers avec Desktop.ini" . Récupéré le 10/01/2024 .
  5. ^ Codrut Neagu, "Pourquoi y a-t-il deux fichiers Desktop.ini sur mon bureau et que font-ils ?"
  6. ^ Rasmus Lerdorf, Kevin Tatroe, Peter MacIntyre. "Programmation PHP". Sections "parse_ini_file", "Extension INI Entries", etc.
  7. ^ Christian Wenz. "Guide de conversation PHP et MySQL". section "Analyse des fichiers INI". citation : "... le format de fichier INI... était très largement utilisé dans le monde Windows, mais il pilote aujourd'hui également la configuration de produits logiciels comme PHP. Par exemple,... php.ini"
  8. ^ "FICHIER DE CONFIGURATION git-config".
  9. ^ "Format de base du fichier". spécifications.freedesktop.org .
  10. ^ "systemd.service". www.freedesktop.org .
  11. ^ "afp.conf — Fichier de configuration Netatalk" . Récupéré le 10/01/2024 .
  12. ^ "pacman.conf(5)" . archlinux.org .
  13. ^ Manuel des fonctions de la bibliothèque abc libconfini
  14. ^ Documentation Apache pour org.apache.commons.configuration2.INIConfiguration, The Apache Software Foundation
  15. ^ Cela inclut l'implémentation de Windows. Voir « Fonction GetPrivateProfileString ». Réseau de développeurs Microsoft . Microsoft . Récupéré le 02/06/2012 .
  16. ^ Le projet Git. "config.txt" . Récupéré le 10/01/2024 .
  17. ^ Le projet Git. "config.txt" . Récupéré le 10/01/2024 .
  18. ^ Le projet Git. "config.txt" . Récupéré le 10/01/2024 .
  19. ^ Implémentation de Cloanto
  20. ^ Le projet Git. "config.txt" . Récupéré le 10/01/2024 .
  21. ^ Le projet Git. "config.txt" . Récupéré le 10/01/2024 .
  22. ^ C'est une pratique courante parmi les auteurs de fichiers INI de « commenter » les entrées indésirables afin de les désactiver, au lieu de les supprimer complètement. Voir la clé adans l'exemple suivant :
    [section] 
    #a=a
    b=b
  23. ^ La syntaxe standard pour la continuation de ligne fait ici référence à la séquence d'une barre oblique inverse suivie d'un saut de ligne , telle qu'implémentée par iniparser, libconfini etjava.util.Properties
  24. ^ Fredrik Lund. "Bibliothèque standard Python". 2001. Section "Le module ConfigParser". p. 143
  25. ^ "ConfigParser - Analyseur de fichiers de configuration".
  26. ^ Suivant la syntaxe du langage avec lequel il est conçu pour fonctionner ( Python ), pour étendre un nœud sur plusieurs lignes, ConfigParser nécessite une indentation plus profonde dans les lignes qui suivent, au lieu de la barre oblique inverse + saut de ligne plus courant (voir : configparser - Configuration analyseur de fichiers)
  27. ^ Documentation Python par version
  28. ^ Analyseur de fichiers clé-valeur GLib
  29. ^ Withnall, Philip (11 février 2021). "glisser 2.66.7". Version FTP de GNOME (liste de diffusion) . Récupéré le 12 février 2021 .
  30. ^ Sorties · GNOME/glib
  31. ^ documentation inifile
  32. ^ Communiqués · inifile
  33. ^ inih README
  34. ^ Utilisation de l'indentation, en suivant explicitement l'approche de ConfigParser (voir la documentation du projet pour plus d'informations)
  35. ^ Sorties · benhoyt/inih
  36. ^ documentation de l'analyseur initial
  37. ^ Sorties · ndevilla/iniparser
  38. ^ Propriétés (Java Platform SE 8)
  39. ^ "OpenJDK : GPLv2 + exception de chemin de classe" . Openjdk.java.net. 1989-04-01 . Récupéré le 09/02/2016 .
  40. ^ "BCL pour Java SE". Oracle.com. 02/04/2013 . Récupéré le 09/02/2016 .
  41. ^ "Sorties JDK". Société Oracle . Récupéré le 09/12/2022 .
  42. ^ "Sorties JDK". Société Oracle . Récupéré le 17/01/2024 .
  43. ^ documentation libconfini
  44. ^ Sorties · madmurphy/libconfini
  45. ^ PHP . "parse_ini_file() — Analyser un fichier de configuration". Documentation PHP officielle . Récupéré le 19/07/2022 .
  46. ^ Licence PHP v3.01[1]
  47. ^ "Version 8.3.6". 11 avril 2024 . Récupéré le 13 avril 2024 .
  48. ^ PyINI
  49. ^ Balises · whoatemybutter / PyINI
  50. ^ python-ini
  51. ^ Documentation RudeConfig
  52. ^ Sorties · RudeConfig
  53. ^ « 9 avril 2024 — KB5036893 (versions du système d'exploitation 22621.3447 et 22631.3447) » . Assistance Microsoft . Microsoft .
  54. ^ "Vin 9.0 sorti". 16 janvier 2024 . Récupéré le 16 janvier 2024 .
  55. ^ abc "configparser sur crates.io". caisses.io . 2022-12-12. Archivé de l'original le 12/12/2022 . Récupéré le 12/12/2022 .
  56. ^ page github java-ini-parser
  57. ^ Fichiers d'initialisation et registre, Kit de ressources Windows NT Workstation , Microsoft TechNet
  58. ^ Administration du registre NT, gestion du registre Windows NT , Paul Robichaux, O'Reilly Media
  59. ^ Le registre système
  60. ^ Le registre Windows était-il une bonne idée ? – Codage d’horreur
  61. ^ "Commentez sur le problème" La compatibilité .INI est un objectif louable "sur GitHub". GitHub .
  62. ^ libconfini/LISEZMOI
  • Boîte d'informations - http://filext.com/file-extension/INI
  • Boîte d'informations - https://wikiext.com/ini

Liens externes

  • Manuel des fonctions de la bibliothèque de libconfini : La syntaxe particulière autorisée par libconfini.
  • Implémentation Cloanto du format de fichier INI : La syntaxe particulière autorisée par un analyseur implémenté par Cloanto.
  • Un métaformat de fichier de données très simple : tutoriel sur l'analyseur INI dans Apache Groovy.
  • Fonctions GetPrivateProfileString() et WritePrivateProfileStringA() de Microsoft
Récupéré de "https://en.wikipedia.org/w/index.php?title=INI_file&oldid=1214525538"