Ir ao conteúdo
  • Cadastre-se

Trabalhando com arquivos ini no Delphi


josielold

Posts recomendados

Trabalhando com Arquivos ini no Delphi

introdução

Os arquivos ini, servem para se guardar configurações de um determinado

programa.

um exemplo de arquivo ini, é o win.ini, que está na pasta C:\windows.

veja a extrutura de um arquivo ini:

;comentario

[secao1]

variavel1=valor1

variavel2=valor2

[secao2]

variavel=josiel

o único problema dos arquivos ini, é a falta de segurança, sendo que

qualquer pessoa pode modificá-lo com qualquer editor de textos, por

exemplo, o bloco

de notas.

atenção!

os arquivos ini são case-sensitive, ou seja, INI é diferente de ini ou

de Ini ou de InI ou de

iNi.

Delphi

o Delphi possue uma classe chamada tinifile, que oferece diversas

funções para trabalhar com estes arquivos ini.

para usar as funções dessa classe, você deve incluir na cláusula uses a

biblioteca inifiles.

preparando o arquivo ini

Primeiro, declare em qualquer ponto do programa, uma variável do tipo

TINIFile, exemplo:


var
arqini:TINIFile;

esta variável pode estar dentro de uma procedure, de uma função ou pode

ser uma variável global também.

agora, veja uma procedure que prepara um arquivo ini para edição:


procedure editaini;
var
arqini:TINIFile;
begin
arquini:=TINIFile. Create ( 'c:\nomedoarquivo.ini' ) ;
end ;

esta procedure declara uma variável do tipo tinifile, e instancia o

objeto tinifile com um nome de um arquivo. este arquivo existindo ou

não, ele não dará erros, pois se o arquivo não existir, a função create

serve tanto para abrir um arquivo quanto para criá-lo.

escrevendo valores

O Delphi, tem diversas funções para escrever valores num arquivo ini.

veja a continuação da procedure editaini agora escrevendo valores no

arquivo ini:


procedure editaini;
var
arqini:TINIFile;
begin
arquini:=TINIFile. Create ( 'c:\nomedoarquivo.ini' ) ;
arquini. writestring ( 'nomedasecao' , 'nomedavariavel' , 'valordavariavel' ) ;
arquini. writeinteger ( 'nomedasecao' , 'nomedavariavel' , 123 ) ;
arquini. writebool ( 'nomedasecao' , 'nomedavariavel' , true ) ;
arquini. free ;
end ;

a procedure acima faz o seguinte:

instancia o objeto tinifile

escreve um valor do tipo string

escreve um valor inteiro

escreve um valor boolean (true ou false)

libera o arquivo da memória

os argumentos que devem ser passados para as funções writestring,

writeinteger e writebool são:

nome da seção do arquivo ini

nome da variável que receberá o valor

valor da variável

Lendo valores

vejamos agora uma procedure para ler os valores do arquivo ini escrito

com a procedure acima:


procedure leini;
var
arqini:TINIFile;
vstring: string ; //receberá a string escrita no arquivo ini
vint: integer ; //receberá o número escrito no arquivo ini
vbool: boolean ; //receberá o valor boolean escrito no arquivo ini
begin
arquini:=TINIFile. Create ( 'c:\nomedoarquivo.ini' ) ;
vstring:=arquini. readstring ( 'secao1' , 'nomedavariavel' , 'valor
padrão a ser retornado' ) ;
vint:=arquini. readinteger ( 'secao1' , 'nomedavariavel' , 50 ) ;
vbool:=arquini. readbool ( 'secao1' , 'nomedavariavel' , false ) ;
arquine. free ;
end ;

a procedure acima faz o seguinte:

declara as variáveis que receberam os valores string, inteiro e boolean

instancia o objeto TINIFile informando um nome de arquivo existente

lê um valor string

lê um valor inteiro

lê um valor boolean

libera o arquivo da memória

os argumentos que devem ser passados para as funções readstring,

readinteger e readbool são:

nome da seção do arquivo

nome da variável que deseja ler o valor

valor padrão a ser retornado caso não exista nenhum valor na variável

informada

Outras funções

existem diversas funções que nos ajudam a trabalhar com um arquivo ini:

erasesection: deleta uma seção e todas as suas variáveis;

sectionexists: verifica pela existência de uma seção;

deletekey: deleta um valor dados o nome da seção e a chave;

readsections: lê os nomes das seções de um arquivo e retorna seus nomes para uma variável do tipo tstringlist;

readsectionvalues: lê os valores de uma seção e retorna-os em uma variável do tipo tstringlist.

Limitações da classe TINIFile

A classe TIniFile usa a API do Windows que impõe um limite de

64kb nos arquivos INI. Se você precisar armazenar mais de 64kb de dados,

você precisará usar o TMemIniFile ao invés da TInifile, que não possui o limite de 64kb.

Fim

As classes tmeminifile e tinifile apresentam muitos outros métodos não

apresentados aqui, portanto, vale a pena procurar na internet sobre o

assunto.

Autor: Josiel A. Santos

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...