Fichier INI

Clés (propriétés)Editer

L’élément de base contenu dans un fichier INI est la clé ou la propriété. Chaque clé possède un nom et une valeur, délimités par un signe égal (=). Le nom apparaît à gauche du signe égal. 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é. La valeur peut contenir n’importe quel caractère.

name=value

SectionsEdit

Les clés peuvent, mais pas nécessairement, être regroupées en sections nommées arbitrairement. Le nom de la section apparaît sur une ligne par lui-même, entre crochets (). Toutes les clés après la déclaration de la section sont associées à cette section. Il n’y a pas de délimiteur explicite de « fin de section » ; les sections se terminent à la déclaration de section suivante, ou à la fin du fichier. Les sections ne peuvent pas être imbriquées.

a=ab=b

Sensibilité à la casseEdit

Les noms de section et de propriété ne sont pas sensibles à la casse dans l’implémentation Windows, mais d’autres applications peuvent se comporter différemment.

CommentairesEdit

Les points-virgules ( 😉 en début de ligne indiquent un commentaire. Les lignes de commentaire sont ignorées.

; comment text

Varying featuresEdit

Cette section nécessite des citations supplémentaires pour vérification. Veuillez aider à améliorer cet article en ajoutant des citations à des sources fiables. Le matériel non sourcé peut être contesté et supprimé. (Avril 2012) (Savoir quand et comment supprimer ce message modèle)

Le format de fichier INI n’est pas universellement défini de manière rigide. De nombreux programmes informatiques prennent en charge des fonctionnalités au-delà des bases déjà décrites. Voici une liste de certaines fonctionnalités courantes, qui peuvent ou non être mises en œuvre dans un programme donné.

Les commentairesEdit

Certains logiciels prennent en charge l’utilisation du signe numérique (#) comme alternative au point-virgule pour indiquer les commentaires. Cependant, il peut être inclus dans le nom de la clé. Par exemple, la ligne suivante crée une variable nommée « #var », mais pas une nommée « var » ; cela est parfois utilisé pour créer une pseudo-implémentation d’un commentaire.

#var=a

Plus généralement, l’utilisation du signe numérique est imprévisible, comme dans ces lignes suivantes (notez l’espace après le signe numérique dans la deuxième ligne). Pour cette raison, le caractère signe numérique ne doit pas être utilisé pour commencer les commentaires.

## var=a

Dans certaines implémentations, un commentaire peut commencer n’importe où sur une ligne, y compris sur la même ligne après les propriétés ou les déclarations de section. Dans d’autres, y compris la fonction WinAPI GetPrivateProfileString, les commentaires doivent se produire sur des lignes par eux-mêmes.

Doublement des nomsEdit

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

L’interprétation de plusieurs déclarations de sections portant le même nom varie également. Dans certaines implémentations, les sections dupliquées fusionnent simplement leurs propriétés, comme si elles se produisaient de manière contiguë. D’autres peuvent interrompre, ou ignorer un aspect du fichier INI.

Caractères d’échappementModifier

Certaines implémentations offrent également un support variable pour un caractère d’échappement, typiquement avec la barre oblique inverse (\). Certaines prennent en charge la « continuation de ligne », où une barre oblique inverse suivie immédiatement de EOL (end-of-line) fait que le saut de ligne est ignoré et que la « ligne logique » se poursuit sur la ligne réelle suivante du fichier INI. La mise en œuvre de divers « caractères spéciaux » avec des séquences d’échappement est également vue.

.

.

.

Séquences d’échappement courantes
Séquence Message
\\ \ (une seule barre oblique inverse, échappant au caractère d’échappement)
\' Apostrophe
\" Citations doubles
\0 Caractère nul
\a Bell/Alert/Audible
\b Espace arrière, Caractère de cloche pour certaines applications
\t Caractère de tabulation
\r Retour chariot
\n Saut de ligne
\; Semicolon
\# Signe numérique \= Signe d’égalité
\: Colon
\x???? Caractère Unicode avec un point de code hexadécimal correspondant à ? ???

Propriétés globalesEdit

Des propriétés « globales » facultatives peuvent également être autorisées, qui sont déclarées avant que toute section soit déclarée.

HiérarchieEdit

La plupart du temps, les fichiers INI n’ont pas de hiérarchie de sections dans les sections. Certains fichiers semblent toutefois avoir une convention de dénomination hiérarchique. Pour la section A, la sous-section B, la sous-sous-section C, la propriété P et la valeur V, ils peuvent accepter des entrées telles que et P=Vxstart.ini de Windows), et P=V (le fichier pilote IBM Windows devlist.ini), ou et B,C,P = V (fichier Microsoft Visual Studio AEMANAGR.INI).

On ne sait pas s’il s’agit simplement de conventions de nommage qu’une application se trouve utiliser pour donner l’apparence d’une hiérarchie, ou si le fichier est lu par un module qui présente réellement cette hiérarchie au programmeur de l’application.

Délimiteur de nom/valeurEdit

Certaines implémentations autorisent un deux-points (:) comme délimiteur de nom/valeur (au lieu du signe égal).

Valeurs citéesEdit

Certaines implémentations autorisent les valeurs à être citées, généralement à l’aide de guillemets doubles et/ou d’apostrophes. Cela permet de déclarer explicitement les espaces blancs, et/ou de citer des caractères spéciaux (égaux, point-virgule, etc.). La fonction standard de Windows GetPrivateProfileString supporte cela, et supprimera les guillemets qui entourent les valeurs.

Modification des espaces blancs

L’interprétation des espaces blancs varie. La plupart des implémentations ignorent les espaces blancs de tête et de queue autour de l’extérieur du nom de la propriété. Certaines ignorent même les espaces blancs à l’intérieur des valeurs (par exemple, en rendant équivalent « host name » et « hostname »). Certaines implémentations ignorent également les espaces blancs de tête et de queue autour de la valeur de la propriété ; d’autres considèrent que tous les caractères qui suivent le signe égal (y compris les espaces blancs) font partie de la valeur.

Ordre des sections et des propriétésModification

Dans la plupart des cas, l’ordre des propriétés dans une section et l’ordre des sections dans un fichier ne sont pas pertinents, mais les implémentations peuvent varier.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *