Ficheiro INI

Chaves (propriedades)Editar

O elemento básico contido num ficheiro INI é a chave ou propriedade. Cada chave tem um nome e um valor, delimitado por um sinal de igual (=). O nome aparece à esquerda do sinal de igual. Na implementação do Windows, o sinal de igual e o ponto e vírgula são caracteres reservados e não podem aparecer na chave. O valor pode conter qualquer caractere.

name=value

SectionsEdit

Keys may, but need not, be grouped into arbitrarily named sections. O nome da secção aparece numa linha por si só, entre parênteses rectos (). Todas as chaves após a declaração da secção são associadas a essa secção. Não há delimitador explícito de “fim de secção”; as secções terminam na declaração da secção seguinte, ou no fim do ficheiro. As secções não podem ser aninhadas.

a=ab=b

Sensibilidade do casoEdit

Nomes de secções e propriedades não são sensíveis a maiúsculas e minúsculas na implementação do Windows, mas outras aplicações podem comportar-se de forma diferente.

CommentsEdit

Semicolons (;) no início da linha indicam um comentário. As linhas de comentário são ignoradas.

; comment text

Vary featuresEdit

Esta secção necessita de citações adicionais para verificação. Por favor, ajude a melhorar este artigo, acrescentando citações a fontes fiáveis. O material não proveniente de fontes pode ser contestado e removido. (Abril 2012) (Saiba como e quando remover esta mensagem modelo)

p> O formato de ficheiro INI não é universalmente definido de forma rígida. Muitos programas de computador suportam características para além das básicas já descritas. Segue-se uma lista de algumas características comuns, que podem ou não ser implementadas em qualquer programa.

CommentsEdit

algum software suporta a utilização do sinal de número (#) como alternativa ao ponto e vírgula para indicar comentários. No entanto, pode ser incluído no nome chave. Por exemplo, a linha seguinte cria uma variável chamada “#var”, mas não uma chamada “var”; isto é por vezes utilizado para criar uma pseudo-implementação de um comentário.

#var=a

Mais geralmente, a utilização do sinal de número é imprevisível, como nestas linhas seguintes (note o espaço após o sinal de número na segunda linha). Por este motivo, o carácter de sinal numérico não deve ser utilizado para iniciar comentários.

## var=a

Em algumas implementações, um comentário pode começar em qualquer lugar numa linha, incluindo na mesma linha após as propriedades ou declarações de secção. Noutras, incluindo a função WinAPI GetPrivateProfileString, os comentários devem ocorrer em linhas por eles próprios.

Nomes duplicadosEdit

A maioria das implementações suporta ter apenas uma propriedade com um determinado nome numa secção. A segunda ocorrência de um nome de propriedade pode causar um aborto, pode ser ignorada (e o valor descartado), ou pode anular a primeira ocorrência (com o primeiro valor descartado). Alguns programas utilizam nomes de propriedade duplicados para implementar propriedades multi-valorizadas.

Interpretação de declarações de múltiplas secções com o mesmo nome também varia. Em algumas implementações, as secções duplicadas simplesmente fundem as suas propriedades, como se tivessem ocorrido de forma contígua. Outras podem abortar, ou ignorar algum aspecto do ficheiro INI.

Editar caracteres de fuga

algumas implementações também oferecem suporte variável para um carácter de fuga, tipicamente com a barra invertida (\). Algumas suportam “continuação de linha”, onde uma contrabarra seguida imediatamente por EOL (fim de linha) faz com que a quebra de linha seja ignorada, e a “linha lógica” é continuada na linha real seguinte do ficheiro INI. Também se vê a implementação de vários “caracteres especiais” com sequências de fuga.

\'

>\">Duas aspas >>div id=”4185887250″>

\b

\t

\r

\n

\;Semicolon

>\=

>>\x????


Sequências de fuga comuns
Sequence Meaning
\\ \ (uma única contrabarra), escapando ao carácter de fuga)
Apostrofe
\0 Null character
Bell/Alert/Audible
Backspace, Caractere sino para algumas aplicações
CaractereTab
Retorno do carro
Alimentação de linha
\# Sinal numérico
Sinal uniforme
\: Colon
caracter unicode com ponto de código hexadecimal correspondente a ????

Propriedades globaisEdit

P>Podem também ser permitidas propriedades opcionais “globais”, que são declaradas antes de qualquer secção ser declarada.

HierarquiaEdit

P>O mais comum, os ficheiros INI não têm hierarquia de secções dentro das secções. Contudo, alguns ficheiros parecem ter uma convenção de nomenclatura hierárquica. Para a secção A, subsecção B, subsecção C, propriedade P e valor V, podem aceitar entradas tais como e P=V (Windows’ xstart.ini e P=V (o ficheiro de driver IBM Windows devlist.ini), ou e B,C,P = V (ficheiro Microsoft Visual Studio AEMANAGR.INI).

Não está claro se se trata simplesmente de convenções de nomenclatura que uma aplicação utiliza para dar a aparência de uma hierarquia, ou se o ficheiro está a ser lido por um módulo que realmente apresenta esta hierarquia ao programador da aplicação.

Delimitador nome/valorEditar

Algumas implementações permitem um dois pontos (:) como delimitador nome/valor (em vez do sinal de igual).

Valores citadosEditar

Algumas implementações permitem que os valores sejam citados, tipicamente utilizando aspas duplas e/ou apóstrofos. Isto permite a declaração explícita de espaços em branco, e/ou a citação de caracteres especiais (iguais, ponto e vírgula, etc.). A função padrão do Windows GetPrivateProfileString suporta isto, e irá remover aspas que rodeiam os valores.

WhitespaceEdit

Interpretação do espaço em branco varia. A maioria das implementações ignora o espaço em branco de entrada e de saída à volta do nome da propriedade. Algumas até ignoram o espaço em branco dentro dos valores (por exemplo, tornando “host name” e “hostname” equivalentes). Algumas implementações também ignoram o espaço em branco à volta do valor da propriedade; outras consideram todos os caracteres que seguem o sinal de igual (incluindo espaço em branco) como parte do valor.

Ordem das secções e propriedadesEditar

Na maioria dos casos a ordem das propriedades numa secção e a ordem das secções num ficheiro é irrelevante, mas as implementações podem variar.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *