Arquivo INI com Delphi


Dicas Delphi

Arquivos Ini com Delphi

Exemplo simples de como usar arquivos INI no Delphi.

Para iniciarmos, declare na uses do seu form/unit a classe “INIFiles”.


uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, IniFiles;

Em seguida declaramos uma variável do tipo TIniFile. Ela pode ser local ou global dependendo de como você for usar.

var
 arq: TIniFile;

Instaciamos a nossa variável com o metódo Create:

arq := TIniFile.Create(ExtractFilePath(Application.exeName) + 'meu.ini');

No metódo Create da Classe TIniFile, é passado como parametro o nome do arquivo que será criado. Vale ressaltar que gravar um arquivo INI dentro de um diretório do Windows, pode ser uma dor de cabeça. Portanto, veja bem onde está salvando um arquivo INI.
No exemplo acima, passei o diretório do meu executável.

Em seguida gravamos alguns valores dentro do arquivo. A classe TINIFile nos permite gravar vários tipos de dados como inteiros, strings, decimais, binarios.
Os metódos para gravação de dados são precedidos da palavra “Write”, e para leitura, “Read”. Abaixo um exemplo de gravação de um inteiro e de uma string:


arq.WriteInteger('Config', 'meu_inteiro', 123);
arq.WriteString('Config', 'minha_string', 'simasWare.wordpress.com');

Neste metódo são passados três parametros, onde o primeiro vai ser a seção (“Config”), em seguida o identificador e por último o valor do mesmo.

Para que estes valores fiquem gravados no arquivo, ao terminar de fazer as alterações, utilize o metódo “UpdateFile”.


arq.UpdateFile;

E por fim, um exemplo de como ler os dados do arquivo:


Edit1.text := arq.ReadString('Config', 'minha_string', '');

A sintaxe é a mesma do “WriteString”, a diferença é que no último parametro, se passa um valor default para caso o identificador não seja encontrado no arquivo INI carregado.

About these ads

12 comentários sobre “Arquivo INI com Delphi

  1. ola amigo se posivel vc me daria uma dica?
    gostaria de saber se é posivel e como eu faço
    para salvar arquivos de musica em um arquivo
    binario.
    desde já fico grato!

  2. vlw pelo post. Depois de vagar por varios sites, percebi que eu tinha de aprender primeiramente o basico sobre arquivos INI. e isso contribuiu para um problema que eu estava enfrentando.

    Grato pela dedicação na explicação.

  3. Olá boa noite, muito bom o post, estou tendo sérios problemas aqui para criar um ini, estou utilizando AdoConnection e SQL Server 2008, por acaso vc tem algum exemplo ai??

    Obrigado

  4. Olá, no caso criei isso para logar com o banco de dados, sem ter nenhuma ferramenta, mas não funciona, alguém sabe me dizer porque?

    Config := TIniFile.Create(‘.\INI\banco.ini’);
    Config.WriteString(‘HELPTECH’, ‘Databasename’,’.\Banco de dados\BANCO.GDB’);
    Config.WriteString(‘HELPTECH’, ‘User_Name’, ‘SYSDBA’);
    Config.WriteString(‘HELPTECH’, ‘Password’, ‘masterkey’);

    Config.ReadString(‘HELPTECH’, ‘Databasename’,”);
    Config.ReadString(‘HELPTECH’, ‘User_Name’, ”);
    Config.ReadString(‘HELPTECH’, ‘Password’, ”);

    Config.Free;

  5. Não Estou conseguindo com que minha aplicação pegue o caminho do Banco de Dados com arquivo ini, veja como está meu codigo;
    procedure Tfrm_login.FormShow(Sender: TObject);
    var path : string;
    begin
    iniconf:=TIniFile.Create(ExtractFilePath(Application.ExeName) + ‘config.ini’);
    iniconf.WriteString(‘Banco de Dados’,’path’,DMdados.IBD_conexao.DatabaseName);
    path := iniconf.ReadString(‘Banco de Dados’,’path’,”);
    DMdados.IBD_conexao.Connected:=False;
    DMdados.IBD_conexao.DatabaseName:=iniconf.ReadString(‘Banco de Dados’,’path’,”);
    iniconf.Free;
    DMdados.IBD_conexao.Connected:=True;
    DMdados.IBTable_USUARIO.Active:=False;
    DMdados.IBTable_USUARIO.Active:=true;
    DMdados.IBTable_USUARIO.Active:=true;
    end;
    End.

      • Fernando de Simas, boa noite
        Conseguir resolver, problema era que ele não chegava escrever, a seção e nem a variável.

  6. Cara, muito obrigado mesmo, eu estava precisando tanto do comando que tem entre esses ai, o ExtractFilePath(), agora poderei terminar meu trabalho! valeu!!!!!

  7. Boa noite meu caro! De fato sua explicação está bastante clara, parabéns!
    Eu estou pesquisando sobre INI para um programinha básico que estou fazendo, e já consegui gerar e gravar dados em um INI com sucesso.
    Esses dados, nada mais são do que o caminho de uma planilha que desejo que seja aberta quando eu clicar no menu de meu pequeno programa onde consta o nome desta planilha.
    Precisei fazer por meio de INI, por que algumas vezes outros usuários ficam movendo ou trocando o nome desta planilha, e eu obviamente acho mais conveniente poder colocar em um INI através da opção configurações de meu programa, o caminho desta planilha. Ok, isso eu já consegui…
    Mas, eu gostaria que quando eu clicasse no menu onde está o nome desta planilha, o programa acessasse este caminho que está gravado no INI, e em seguida abrisse a planilha.

    Achei que daria para fazer por Shell execute ou por Winexec, mas obviamente não funciona, e eu não sei MESMO como fazer, já que tenho menos de um mês de aprendizado em Delphi…

    Será que há como fazer isso??

    • Boa noite, Jadilson!

      A melhor opção mesmo seria usar o Shell Execute.
      Poderia postar o código que você está utilizando para eu verificar?

      Atenciosamente,
      Fernando.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s