Os arquivos INI são arquivos texto de configuração de um determinado aplicativo/sistema, usados para armazenar informações de parametrização. São comumente associados ao sistema operacional Windows, mas podem ser utilizados em outras plataformas também. A extensão destes arquivos é .ini, cujo nome deriva da palavra initialization que significa inicialização.
Um bom exemplo da utilização deste tipo de arquivo é o arquivo dbxconnections.ini que se encontra na pasta do dbExpress. Ele é responsável pela parametrização das conexões dos bancos de dados suportados nativamente pelo Delphi como: Oracle, MSSQL, Informix etc. Lembrando que a configuração presente nele, somente "entrará em ação" se a propriedade LoadParamsOnConnect for True no componente SQLConnection.
Estrutura do arquivo
Um arquivo INI é composto por seções e propriedades.
As propriedades são os parâmetros de configuração, as quais possuem nome e valor delimitados pelo sinal de igual.
As seções são os grupos de propriedades que existem em um determinado arquivo INI. O nome de uma seção deve estar entre colchetes. Um arquivo pode ter uma ou mais seções.
No exemplo citado acima, do arquivo dbxconnections.ini, há várias seções, cada uma é caracterizada por um banco de dados suportado pelo dbExpress.
Também podemos inserir comentários neste tipo de arquivo, basta começarmos a linha que desejamos comentar com um ponto-e-vírgula.
Podemos ver abaixo um exemplo de um arquivo INI contendo todos elementos que podem existir em sua estrutura:

Figura 1 - Exemplo de arquivo INI
Podemos perceber que temos duas seções, cada uma contendo suas respectivas informações de parametrização. Adicionamos também, comentários para cada parâmetro a fim de melhor explicar sua utilização.
Aplicação
Para começarmos a trabalhar com arquivos INI é necessário adicionarmos a unit IniFiles na uses da unit na qual estamos trabalhando. Declaremos também na seção private da unit as seguintes variáveis:
private
//Variáveis que armazenam os parâmetros lidos do arquivo INI
paramHostFTP, paramUsrFTP, paramHostMail, paramUsrMail: string;
paramPwdFTP, paramPortMail: integer;
Vejamos agora um método aplicável ao nosso dia-a-dia. Ele abre nosso arquivo INI e lê todos os parâmetros armazenando-os em determinadas variáveis, para que possam ser utilizados posteriormente na aplicação.
procedure TForm1.LerArquivoIni;
var
strArquivoIni: string;
arqIni: TIniFile;
begin
strArquivoIni := 'C:\CONFIG.INI';
arqIni := TIniFile.Create(strArquivoIni);
with arqIni do
begin
////Configurações do FTP
paramHostFTP := ReadString( 'FTP', 'HOST_FTP', '');
paramUsrFTP := ReadString( 'FTP', 'USR_FTP', '');
paramPwdFTP := ReadInteger('FTP', 'PWD_FTP', 0);
////Configurações de E-mail
paramHostMail := ReadString( 'EMAIL', 'HOST_MAIL', '');
paramPortMail := ReadInteger('EMAIL', 'PORT_MAIL', 0);
paramUsrMail := ReadString( 'EMAIL', 'USR_MAIL', '');
Free;
end;
end;
Primeiramente, setamos nosso arquivo INI e criamos uma instância do mesmo na variável arqIni do tipo TiniFile. Depois, utilizamos os métodos ReadString e ReadInteger para ler os parâmetros texto e inteiro de acordo com seus tipos, respectivamente.
Nos métodos Read, informamos, antes de mais nada, a seção na qual a propriedade está contida, depois dizemos o nome da propriedade. Se houver algum valor default a ser setado para a propriedade, no caso de ela vir vazia, podemos informá-lo no último parâmetro do método, como foi feito com as propriedades PWD_FTP e PORT_MAIL.
É importante ressaltar também que podemos escrever propriedades em um arquivo INI, utilizando os métodos Write, WriteString, WriteInteger, etc, seguindo a mesma ideia dos métodos Read, isto é, seção e propriedade, porém no último parâmetro devemos passar o valor da propriedade e não o valor default da mesma.
Nota: A classe TIniFile utiliza uma API do Windows que tem um limite de 64KB por arquivo INI. Se houver a necessidade de mais espaço, utilize a classe TMemIniFile.
Bom pessoal, espero que tenha alguma utilidade para vocês!
Sucesso à todos!
Por: Rodrigo Alves dos Santos (marone)
Contato: rod.alves88@gmail.com
|