File INI

Chiavi (proprietà) Modifica

L’elemento base contenuto in un file INI è la chiave o proprietà. Ogni chiave ha un nome e un valore, delimitati da un segno di uguale (=). Il nome appare a sinistra del segno di uguale. Nell’implementazione di Windows il segno di uguale e il punto e virgola sono caratteri riservati e non possono apparire nella chiave. Il valore può contenere qualsiasi carattere.

name=value

SectionsEdit

Le chiavi possono, ma non devono, essere raggruppate in sezioni dal nome arbitrario. Il nome della sezione appare su una linea a sé stante, tra parentesi quadre (). Tutte le chiavi dopo la dichiarazione di sezione sono associate a quella sezione. Non c’è un delimitatore esplicito di “fine sezione”; le sezioni terminano alla prossima dichiarazione di sezione, o alla fine del file. Le sezioni non possono essere annidate.

a=ab=b

Sensibilità al maiuscolo/minuscoloModifica

I nomi delle sezioni e delle proprietà non sono sensibili al maiuscolo/minuscolo nell’implementazione di Windows, ma altre applicazioni potrebbero comportarsi diversamente.

CommentiModifica

I punti e virgola (;) all’inizio della riga indicano un commento. Le righe di commento sono ignorate.

; comment text

Caratteristiche variabiliModifica

Questa sezione necessita di ulteriori citazioni per la verifica. Si prega di aiutare a migliorare questo articolo aggiungendo citazioni a fonti affidabili. Il materiale privo di fonti può essere contestato e rimosso. (Aprile 2012) (Impara come e quando rimuovere questo messaggio template)

Il formato del file INI non è universalmente definito in modo rigido. Molti programmi per computer supportano funzioni oltre le basi già descritte. Il seguente è un elenco di alcune caratteristiche comuni, che possono o non possono essere implementate in ogni dato programma.

CommentsEdit

Alcuni software supportano l’uso del segno di numero (#) come alternativa al punto e virgola per indicare i commenti. Tuttavia, può essere incluso nel nome della chiave. Per esempio, la linea seguente crea una variabile chiamata “#var”, ma non una chiamata “var”; questo è talvolta usato per creare una pseudo-implementazione di un commento.

#var=a

Più in generale, l’uso del segno di numero è imprevedibile, come in queste linee seguenti (notare lo spazio dopo il segno di numero nella seconda linea). Per questo motivo, il carattere del segno numerico non dovrebbe essere usato per iniziare i commenti.

## var=a

In alcune implementazioni, un commento può iniziare ovunque su una linea, inclusa la stessa linea dopo le dichiarazioni di proprietà o sezione. In altre, inclusa la funzione WinAPI GetPrivateProfileString, i commenti devono presentarsi su linee a sé stanti.

Nomi duplicatiModifica

La maggior parte delle implementazioni supporta solo una proprietà con un dato nome in una sezione. La seconda occorrenza di un nome di proprietà può causare un’interruzione, può essere ignorata (e il valore scartato), o può sovrascrivere la prima occorrenza (con il primo valore scartato). Alcuni programmi usano nomi di proprietà duplicati per implementare proprietà multi-valore.

Anche l’interpretazione di dichiarazioni di sezioni multiple con lo stesso nome varia. In alcune implementazioni, le sezioni duplicate semplicemente uniscono le loro proprietà, come se si presentassero contigue. Altre possono interrompere, o ignorare qualche aspetto del file INI.

Caratteri di escapeModifica

Alcune implementazioni offrono anche un supporto variabile per un carattere di escape, tipicamente con il backslash (\). Alcuni supportano la “continuazione di linea”, dove un backslash seguito immediatamente da EOL (fine della linea) fa sì che l’interruzione di linea venga ignorata, e che la “linea logica” venga continuata sulla prossima linea effettiva dal file INI. Si vede anche l’implementazione di vari “caratteri speciali” con sequenze di escape.

Sequenze di escape comuni
Sequenza Significato
\\ \ (un singolo backslash, che sfugge al carattere di escape)
\' Apostrophe
\" Doppie virgolette
\0 Carattere nullo
\a Bell/Alert/Audible
\b Backspace, Carattere campana per alcune applicazioni
\t Carattere Tab
\r Ritorno a capo
\n Inserimento linea
\; Punto e virgola
\# Segno di numero
\= Segno uguale
\: Colon
\x???? Carattere Unicode con punto di codice esadecimale corrispondente a ????

Proprietà globaliModifica

Possono essere permesse anche proprietà “globali” opzionali, che sono dichiarate prima che qualsiasi sezione sia dichiarata.

GerarchiaModifica

Più comunemente, i file INI non hanno una gerarchia di sezioni dentro le sezioni. Tuttavia, alcuni file sembrano avere una convenzione di denominazione gerarchica. Per la sezione A, sottosezione B, sottosezione C, proprietà P e valore V, possono accettare voci come e P=Vxstart.ini di Windows), e P=V (il file del driver IBM Windows devlist.ini), o e B,C,P = V (file Microsoft Visual Studio AEMANAGR.INI).

Non è chiaro se queste sono semplicemente convenzioni di denominazione che un’applicazione usa per dare l’apparenza di una gerarchia, o se il file viene letto da un modulo che presenta effettivamente questa gerarchia al programmatore dell’applicazione.

Delimitatore nome/valoreModifica

Alcune implementazioni permettono un due punti (:) come delimitatore nome/valore (invece del segno di uguale).

Valori quotatiModifica

Alcune implementazioni permettono che i valori siano quotati, tipicamente usando doppi apici e/o apostrofi. Questo permette di dichiarare esplicitamente gli spazi bianchi e/o di citare caratteri speciali (uguale, punto e virgola, ecc.). La funzione standard di Windows GetPrivateProfileString supporta questo, e rimuoverà le virgolette che circondano i valori.

WhitespaceEdit

L’interpretazione degli spazi bianchi varia. La maggior parte delle implementazioni ignorano gli spazi bianchi iniziali e finali intorno all’esterno del nome della proprietà. Alcune ignorano anche gli spazi bianchi all’interno dei valori (per esempio, rendendo “host name” e “hostname” equivalenti). Alcune implementazioni ignorano anche gli spazi bianchi iniziali e finali intorno al valore della proprietà; altre considerano tutti i caratteri che seguono il segno di uguale (compresi gli spazi bianchi) come parte del valore.

Ordine delle sezioni e delle proprietàModifica

Nella maggior parte dei casi l’ordine delle proprietà in una sezione e l’ordine delle sezioni in un file è irrilevante, ma le implementazioni possono variare.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *