Plik INI

Klucze (właściwości)Edycja

Podstawowym elementem zawartym w pliku INI jest klucz lub właściwość. Każdy klucz posiada nazwę i wartość, ograniczone znakiem równości (=). Nazwa pojawia się na lewo od znaku równości. W implementacji Windows znak równości i średnik są znakami zastrzeżonymi i nie mogą występować w kluczu. Wartość może zawierać dowolny znak.

name=value

SectionsEdit

Klucze mogą, ale nie muszą, być pogrupowane w dowolnie nazwane sekcje. Nazwa sekcji pojawia się w osobnej linii, w nawiasach kwadratowych (). Wszystkie klucze po deklaracji sekcji są z nią związane. Nie ma wyraźnego ogranicznika „końca sekcji”; sekcje kończą się na następnej deklaracji sekcji lub na końcu pliku. Sekcje nie mogą być zagnieżdżane.

a=ab=b

Wrażliwość na wielkość literEdycja

Nazwy sekcji i właściwości nie uwzględniają wielkości liter w implementacji Windows, ale inne aplikacje mogą zachowywać się inaczej.

KomentarzeEdycja

Semikolony (;) na początku linii wskazują na komentarz. Linie komentarza są ignorowane.

; comment text

Różne funkcjeEdit

Ta sekcja wymaga dodatkowych cytatów do weryfikacji. Prosimy o pomoc w ulepszeniu tego artykułu poprzez dodanie cytatów do wiarygodnych źródeł. Materiały niepochodzące z innych źródeł mogą zostać zakwestionowane i usunięte. (kwiecień 2012) (Learn how and when to remove this template message)

Format pliku INI nie jest powszechnie sztywno zdefiniowany. Wiele programów komputerowych obsługuje funkcje wykraczające poza opisane już podstawy. Poniżej znajduje się lista niektórych popularnych funkcji, które mogą, ale nie muszą być zaimplementowane w danym programie.

KomentarzeEdit

Niektóre programy obsługują użycie znaku liczby (#) jako alternatywy dla średnika do wskazywania komentarzy. Może on być jednak zawarty w nazwie klucza. Na przykład, poniższa linia tworzy zmienną o nazwie „#var”, ale nie o nazwie „var”; jest to czasami używane do tworzenia pseudo-implementacji komentarza.

#var=a

Bardziej ogólnie, użycie znaku liczby jest nieprzewidywalne, jak w poniższych liniach (zauważ spację po znaku liczby w drugiej linii). Z tego powodu, znak znaku liczby nie powinien być używany do rozpoczynania komentarzy.

## var=a

W niektórych implementacjach, komentarz może zaczynać się w dowolnym miejscu w linii, w tym w tej samej linii po deklaracjach właściwości lub sekcji. W innych, w tym w funkcji WinAPI GetPrivateProfileString, komentarze muszą występować samodzielnie w liniach.

Duplikaty nazwEdit

Większość implementacji obsługuje tylko posiadanie jednej właściwości o danej nazwie w sekcji. Drugie wystąpienie nazwy właściwości może spowodować przerwanie, może zostać zignorowane (a wartość odrzucona), lub może zastąpić pierwsze wystąpienie (z pierwszą wartością odrzuconą). Niektóre programy używają zduplikowanych nazw właściwości do implementacji właściwości wielowartościowych.

Interpretacja wielu deklaracji sekcji o tej samej nazwie również jest różna. W niektórych implementacjach, zduplikowane sekcje po prostu łączą swoje właściwości, tak jakby występowały przylegle. Inne mogą przerwać, lub zignorować jakiś aspekt pliku INI.

Znaki ucieczkiEdit

Niektóre implementacje oferują również zróżnicowane wsparcie dla znaku ucieczki, zazwyczaj z odwrotnym ukośnikiem (\). Niektóre obsługują „kontynuację linii”, gdzie odwrotny ukośnik, po którym natychmiast następuje EOL (end-of-line) powoduje, że przerwanie linii jest ignorowane, a „linia logiczna” jest kontynuowana na następnej rzeczywistej linii z pliku INI. Widać również implementację różnych „znaków specjalnych” z sekwencjami ucieczki.

.

Wspólne sekwencje ucieczki
Sekwencja Znaczenie
\\ (pojedynczy backslash, uciekający znak escape)
\' Apostrofa
\" Cudzysłów podwójny
\0 Znak pusty
\a Bell/Alert/Audible
\b Backspace, Znak dzwonka dla niektórych zastosowań
\t Znak tabulacji
\r Powrót karetki
\n Podawanie linii
\; Semikolon
\# Znak liczby
\= Znak równości
\: Kolon
\x???? Znak Unicode o szesnastkowym punkcie kodowym odpowiadającym ????

Właściwości globalneEdit

Dozwolone mogą być również opcjonalne właściwości „globalne”, które są deklarowane przed deklaracją jakiejkolwiek sekcji.

HierarchiaEdit

Najczęściej pliki INI nie mają hierarchii sekcji w sekcjach. Niektóre pliki wydają się jednak posiadać hierarchiczną konwencję nazewnictwa. Dla sekcji A, podsekcji B, podsekcji C, właściwości P i wartości V, mogą one akceptować wpisy takie jak i P=V (Windows' xstart.ini i P=V (plik sterownika IBM Windows devlist.ini), lub i B,C,P = V (plik Microsoft Visual Studio AEMANAGR.INI).

Nie jest jasne, czy są to po prostu konwencje nazewnictwa, których aplikacja używa, aby nadać wygląd hierarchii, czy też plik jest odczytywany przez moduł, który faktycznie przedstawia tę hierarchię programiście aplikacji.

Ogranicznik nazwy/wartościEdit

Niektóre implementacje pozwalają na użycie dwukropka (:) jako ogranicznika nazwy/wartości (zamiast znaku równości).

Wartości cytowaneEdit

Niektóre implementacje pozwalają na cytowanie wartości, zazwyczaj używając cudzysłowów i/lub apostrofów. Pozwala to na wyraźne deklarowanie białych przestrzeni i/lub cytowanie znaków specjalnych (równości, średników itp.). Standardowa funkcja Windows GetPrivateProfileString obsługuje to, i usunie cudzysłowy otaczające wartości.

WhitespaceEdit

Interpretacja białych przestrzeni jest różna. Większość implementacji ignoruje wiodącą i ciągnącą się białą przestrzeń wokół zewnętrznej nazwy właściwości. Niektóre nawet ignorują białe znaki wewnątrz wartości (na przykład, czyniąc „nazwę hosta” i „nazwę hosta” równoważnymi). Niektóre implementacje również ignorują białą przestrzeń wokół wartości właściwości; inne uważają wszystkie znaki następujące po znaku równości (włączając w to białą przestrzeń) za część wartości.

Kolejność sekcji i właściwościEdit

W większości przypadków kolejność właściwości w sekcji i kolejność sekcji w pliku nie ma znaczenia, ale implementacje mogą się różnić.

Porządek sekcji i właściwości w pliku jest nieistotny.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *