Manipular Arquivos Ini
28/04/2003
0
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
Posts
28/04/2003
Schumacher
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
28/04/2003
Luciano.carvalho
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
28/04/2003
Schumacher
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
28/04/2003
Luciano.carvalho
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.
28/04/2003
Schumacher
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
Clique aqui para fazer login e interagir na Comunidade :)