INI-bestand

Sleutels (eigenschappen)bewerken

Het basiselement in een INI-bestand is de sleutel of eigenschap. Elke key heeft een naam en een waarde, gescheiden door een gelijkteken (=). De naam staat links van het gelijkheidsteken. In de Windows-implementatie zijn het gelijkheidsteken en de puntkomma gereserveerde tekens en kunnen ze niet voorkomen in de sleutel. De waarde kan elk willekeurig teken bevatten.

name=value

SectionsEdit

Sleutels kunnen, maar hoeven niet, te worden gegroepeerd in willekeurig benoemde secties. De naam van de sectie verschijnt op een aparte regel, tussen vierkante haken (). Alle keys na de section declaratie zijn geassocieerd met die section. Er is geen expliciet “einde van sectie” scheidingsteken; secties eindigen bij de volgende sectie-aangifte, of aan het einde van het bestand. Secties kunnen niet worden genest.

a=ab=b

HoofdlettergevoeligheidEdit

Sectie- en eigenschapsnamen zijn niet hoofdlettergevoelig in de Windows-implementatie, maar andere toepassingen kunnen zich anders gedragen.

CommentaarEdit

Zemikommers (;) aan het begin van een regel geven een commentaar aan. Commentaarregels worden genegeerd.

; comment text

Verschillende functiesEdit

Deze sectie heeft extra citaties nodig voor verificatie. Help dit artikel te verbeteren door citaten naar betrouwbare bronnen toe te voegen. Materiaal zonder bronvermelding kan worden aangevochten en verwijderd. (April 2012) (Leer hoe en wanneer u dit sjabloonbericht verwijdert)

De INI-bestandsindeling is niet universeel strikt gedefinieerd. Veel computerprogramma’s ondersteunen functies die verder gaan dan de reeds beschreven basisfuncties. Hieronder volgt een lijst met enkele veelgebruikte functies, die al dan niet in een bepaald programma zijn geïmplementeerd.

CommentsEdit

Sommige software ondersteunt het gebruik van het cijferteken (#) als alternatief voor de puntkomma voor het aangeven van commentaar. Het kan echter wel in de naam van de sleutel worden opgenomen. De volgende regel creëert bijvoorbeeld een variabele met de naam “#var”, maar niet een met de naam “var”; dit wordt soms gebruikt om een pseudo-implementatie van een commentaar te maken.

#var=a

Meer in het algemeen is het gebruik van het nummerteken onvoorspelbaar, zoals in deze volgende regels (let op de spatie na het nummerteken in de tweede regel). Daarom moet het nummerteken niet worden gebruikt om commentaar te beginnen.

## var=a

In sommige implementaties kan een commentaar overal op een regel beginnen, ook op dezelfde regel na eigenschappen of sectiedeclaraties. In andere implementaties, waaronder de WinAPI-functie GetPrivateProfileString, moet commentaar alleen op een regel staan.

Duplicate namesEdit

De meeste implementaties ondersteunen slechts één eigenschap met een bepaalde naam in een sectie. Het tweede voorkomen van een naam van een eigenschap kan een afbreking veroorzaken, het kan worden genegeerd (en de waarde weggegooid), of het kan het eerste voorkomen opheffen (met de eerste waarde weggegooid). Sommige programma’s gebruiken dubbele eigenschapsnamen om eigenschappen met meerdere waarden te implementeren.

De interpretatie van meerdere section declaraties met dezelfde naam varieert ook. In sommige implementaties worden de eigenschappen van dubbele secties gewoon samengevoegd, alsof ze contigu voorkomen. Andere kunnen afbreken, of een bepaald aspect van het INI-bestand negeren.

Escape charactersEdit

Sommige implementaties bieden ook variërende ondersteuning voor een escape karakter, meestal met de backslash (\). Sommigen ondersteunen “line continuation”, waarbij een backslash onmiddellijk gevolgd door EOL (end-of-line) ervoor zorgt dat de regeleinde wordt genegeerd, en de “logische regel” wordt voortgezet op de volgende werkelijke regel van het INI-bestand. Implementatie van diverse “speciale tekens” met escape-sequenties is ook te zien.

Common escape sequences
Vereeks Betekenis
\\ (een enkele backslash, die het escape teken escaleert)
\' Apostrophe
\" Double quotes
\0 Null teken
\a Bell/Alert/Audible
\b Backspace, Belteken voor sommige toepassingen
\t Tab teken
\r Karriage return
\n Line feed
\; Semicolon
\# Nummerteken
\= Gelijkteken
\: Kolon
\x???? Unicode-teken met hexadecimale codepunt die overeenkomt met ????

Globale eigenschappenEdit

Optionele “globale” eigenschappen kunnen ook zijn toegestaan, die worden gedeclareerd voordat een sectie wordt gedeclareerd.

HiërarchieEdit

InI-bestanden hebben meestal geen hiërarchie van secties binnen secties. Sommige bestanden lijken echter een hiërarchische naamgevingsconventie te hebben. Voor sectie A, subsectie B, sub-subsectie C, eigenschap P en waarde V, kunnen ze invoer accepteren zoals en P=V (Windows’ xstart.ini en P=V (het IBM Windows driver bestand devlist.ini), of en B,C,P = V (Microsoft Visual Studio bestand AEMANAGR.INI).

Het is onduidelijk of dit gewoon naamgevingsconventies zijn die een applicatie toevallig gebruikt om de schijn van een hiërarchie op te wekken, of dat het bestand wordt ingelezen door een module die deze hiërarchie daadwerkelijk aan de applicatieprogrammeur presenteert.

Scheidingsteken tussen naam en waardeEdit

Sommige implementaties staan een dubbele punt toe (:) als scheidingsteken tussen naam en waarde (in plaats van het gelijkteken).

Geciteerde waardenEdit

Sommige implementaties staan toe dat waarden worden geciteerd, meestal met dubbele aanhalingstekens en/of apostrofs. Dit maakt expliciete declaratie van witruimte mogelijk, en/of het citeren van speciale tekens (gelijken, puntkomma, enz.). De standaard Windows functie GetPrivateProfileString ondersteunt dit, en zal aanhalingstekens rondom de waarden verwijderen.

WitruimteEdit

Interpretatie van witruimte varieert. De meeste implementaties negeren voorloop en naloop spaties rond de buitenkant van de naam van de eigenschap. Sommige implementaties negeren zelfs spaties binnen de waarden (bijvoorbeeld, waardoor “host name” en “hostname” equivalent zijn). Sommige implementaties negeren ook leidende en volgende spaties rond de waarde van de eigenschap; andere beschouwen alle tekens na het gelijkteken (inclusief spaties) als deel van de waarde.

Volgorde van secties en eigenschappenEdit

In de meeste gevallen is de volgorde van eigenschappen in een sectie en de volgorde van secties in een bestand niet relevant, maar implementaties kunnen variëren.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *