Manipular Arquivos Ini

28/04/2003

0

Bom pessoal, estou com duvida na programação de ar. ini.
Tenho uma variavel ´usuario´, onde gostaria de usar esta variavel, na leitura do arq ini, onde ficaria assim

ArqIni.ReadString(´<variavel>´, ´caminho´,´ ´);

como posso associar no local < variavel > a variavel que tenho Usuario, para que ele possa ler e retornar o que estou precisando, o que seria o caminho.

Obrigado pela atenção.

Luciano


Luciano.carvalho

Luciano.carvalho

Responder

Posts

28/04/2003

Schumacher

Luciano,

Primeiramente, para poder utilizar funções relacionadas a arquivos INI, você deve declarar a Unit IniFiles na cláusula Uses.
Suponhamos que seu arquivo INI tenha a seguinte estrutura:

-----------------------------------------------------------------------
[Informacoes]
Usuario=Marcelo
-----------------------------------------------------------------------
Gostaria de pegar o nome deste usuário no momento da criação do formulário:

procedure TForm1.FormCreate(Sender: TObject);
var
INI: TIniFile;
Usuario: String;
begin
INI := TIniFile.Create(´C:\Arquivo.ini´);
Usuario := INI.ReadString(´Informacoes´, ´Usuario´, ´Erro´);
INI.Free;
end;

*Repare que eu utilizo uma varável que é do tipo TIniFiles, e após uma string que armazenará o valor contido no campo Usuario.

O primeiro parâmetro da função ReadString referencia a seção em que este atributo se encontra, no nosso exemplo é o ´[Informacoes]´. O segundo parâmetro referencia ao(s) atributo(s) contido dentro desta seção, no nosso caso, ´Usuario´. Já o terceiro parâmetro é uma informação que ele lhe retornará caso não encontre os determinados parâmetros que passou para esta função.

_________________
Marcelo Schumacher


Responder

28/04/2003

Luciano.carvalho

Estou usando conforme vc mencionou...
o que estou querendo e o seguinte:

- Tenho no arquivo de configuração no 1º atributo [informação], o nome de usuario, com informações no seguintes atributos, seria mais ou menos assim.

[usuario]
caminho=c:\windows
dados=c:\dados.

onde queria que quando pedisse para o arq le as informações no lugar da <variave> que havia lhe postado anteriormente, ele consegue entender o nome da variavel e recuperasse a informação de acordo com os atributos caminho e dados, sem fazer uma logica para avaliar usuario por usuario.

Não sei se lhe expliquei de direito.

Obrigado


Responder

28/04/2003

Schumacher

Luciano,

Não entendi muito bem a informação que passate, mas sem utilizar uma rotina lógica, ou variáveis temporarias para armazenar estes valores não consigo ver uma outra solução.

_________________
Marcelo Schumacher


Responder

28/04/2003

Luciano.carvalho

Bom
tenho um arquivo de configuração:

[carolina]
caminho=c:\windows
dados=c:\dados

[juliana]
caminho=c:\windows\temp
dados=c:\dados\temp

[maria]
caminho=c:\windows\temp\arquivo
dados=c:\dados\temp\arquivo

Seria neste tipo acima,onde quando passo a leitura do ini.readstring(´nome do usuario´,´caminho´,´´)
este nome do usuario, seria o nome do 1º paramentro(atributo do arq. de configuração).
Mas estava querendo fazer de uma forma onde ao inves de colocar para o arquivo ini le, conforme acima, fazer algo do tipo
ini.readstrinf(´variavel´,´caminho´,´´), onde a variavel iria conter o nome do usuario, ficando assim:

usuario=juliana;
ini.readstring(´usuario´,´caminho´,´´)
ele então me retornaria os dados do caminho conforme no inicio do topico.

Será que clareou melhor..

Obrigado.


Responder

28/04/2003

Schumacher

Luciano,

Agora entendi a sua questão. Fiz um exemplo prático aqui, crando um arquivo INI com a seguinte estrutura:

[MARCELO]
Caminho=C:\
Dados=C:\Dados

[FELIPE]
Caminho=C:\Windows
Dados=C:\Windows\Dados

Criei um formulário que possui um Edit e um botão para executar a função de acesso ao sistema por exemplo. No evento OnClick do botão, adicionei o seguinte código:

var
INI: TIniFile;
Caminho, Dados, Usuario: String;
begin
Usuario := UpperCase(´Edit1.Text´);
INI := TIniFile.Create(´C:\Novo Documento de texto.ini´);
Caminho := INI.ReadString(Usuario, ´Caminho´, ´Erro´);
Dados := INI.ReadString(Usuario, ´Dados´, ´Erro´);
INI.Free;
end;

Utilizei uma variável de nome Usuario que armazenará o nome que coloquei no Edit e ainda o colocará em maiúsculo para não haver problemas com caracteres maiúsculos e minúsculos.
Pelo que verifiquei, a única coisa que você estava fazendo de errado, era que estava pondo Aspas no primeiro parâmetro da função ReadString, mas você não deve colocar, pois senão, ele tratará a variável como sendo uma string chamada ´Usuario´ e procurará uma seção de nome usuário, sem aspas ele utilizará o valor que foi atribuído à variável, por exemplo ´Marcelo´.
Bom, acho que é isso, espero ter lhe ajudado.

_________________
Marcelo Schumacher


Responder

28/04/2003

Luciano.carvalho

Beleza...

Deu certo Marcelo...

Obrigado


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar