Recent

Author Topic: Tratamento de arquivos do tipo PalavraChave=Valor  (Read 9136 times)

nightrider

  • Full Member
  • ***
  • Posts: 139
Tratamento de arquivos do tipo PalavraChave=Valor
« on: November 19, 2011, 02:03:00 pm »
Gostaria de saber se há, em Lazarus, uma classe para tratamento dos arquivos do tipo:

PalavraChave=Valor

Se afirmativo, qual seria ela?

Saudações desde São Paulo - SP

Ricardo

typo

  • Hero Member
  • *****
  • Posts: 3051
Re: Tratamento de arquivos do tipo PalavraChave=Valor
« Reply #1 on: November 19, 2011, 02:28:26 pm »
Como no Delphi, a classe é TINIFIle, declarada na unidade INIFiles.

[Section]
Key=Value

felipemdc

  • Administrator
  • Hero Member
  • *
  • Posts: 3538

nightrider

  • Full Member
  • ***
  • Posts: 139
Re: Tratamento de arquivos do tipo PalavraChave=Valor
« Reply #3 on: November 19, 2011, 03:17:25 pm »
Eu tentei entender como:

1. Criaria e gravaria;
2. Leria e apropriaria os valores;
3. Leria, alteraria e gravaria;

Tudo usando somente os metódos da classe. Confesso que não consegui. Deve ser por causa do meu conhecimento de OOP.

Alguem teria exemplo(s) pratico(s)? Só pra eu estudar e tentar entender como se usa os métodos na pratica?

Como dizem aqu em SP, proposta não é ofensa...

[ ]



typo

  • Hero Member
  • *****
  • Posts: 3051
Re: Tratamento de arquivos do tipo PalavraChave=Valor
« Reply #4 on: November 19, 2011, 04:57:06 pm »
Code: [Select]
procedure TForm1.Button2Click(Sender:TObject);
var
  MyIniFile : TIniFile;
begin
  MyIniFile := TIniFile.Create('Test.ini',True);
  try
    MyIniFile.WriteString('Section', 'Key', 'Value');
  finally
    MyIniFile.Free;
  end;
end;   

nightrider

  • Full Member
  • ***
  • Posts: 139
Re: Tratamento de arquivos do tipo PalavraChave=Valor
« Reply #5 on: November 19, 2011, 05:02:42 pm »
Seria abuso pedir 1 exemplo de como seria a leitura do arquivo. "Test.ini"?

Muito obrigado.

[ ]

Ricardo

typo

  • Hero Member
  • *****
  • Posts: 3051
Re: Tratamento de arquivos do tipo PalavraChave=Valor
« Reply #6 on: November 19, 2011, 05:13:00 pm »
Code: [Select]
procedure TForm1.Button3Click(Sender: TObject);
var
  MyIniFile : TIniFile;
begin
  MyIniFile := TIniFile.Create('Test.ini',True);
  try
    MyIniFile.WriteString('Section', 'Key', 'Value');
    ShowMessage(MyIniFile.ReadString('Section', 'Key', 'NoneFound'));
  finally
    MyIniFile.Free;
  end;
end;     

nightrider

  • Full Member
  • ***
  • Posts: 139
Re: Tratamento de arquivos do tipo PalavraChave=Valor
« Reply #7 on: November 19, 2011, 05:19:49 pm »
Boa.

Só mais um detalhe: O arquivo "Test.ini" já existe em disco e um determinado programa pretende le-lo, como seria o código p/abri-lo e carrega-lo. Imagino que o acesso as linhas seria via o método ReadString já demonstrado no teu exemplo anterior...

[ ]

typo

  • Hero Member
  • *****
  • Posts: 3051
Re: Tratamento de arquivos do tipo PalavraChave=Valor
« Reply #8 on: November 19, 2011, 05:23:58 pm »
É preciso instanciar a classe (uma vez feito isto, o arquivo está aberto e carregado) e usar o método ReadString. Apenas retire a linha WriteString do exemplo.
« Last Edit: November 19, 2011, 05:33:55 pm by typo »

nightrider

  • Full Member
  • ***
  • Posts: 139
Re: Tratamento de arquivos do tipo PalavraChave=Valor
« Reply #9 on: November 19, 2011, 05:41:03 pm »
O nome do arquivo de entrada é informado como parametro do Creator, presumo. Certo?

Grato

[ ]

typo

  • Hero Member
  • *****
  • Posts: 3051
Re: Tratamento de arquivos do tipo PalavraChave=Valor
« Reply #10 on: November 19, 2011, 05:41:54 pm »
Sim.

felipemdc

  • Administrator
  • Hero Member
  • *
  • Posts: 3538
Re: Tratamento de arquivos do tipo PalavraChave=Valor
« Reply #11 on: November 19, 2011, 05:43:40 pm »

typo

  • Hero Member
  • *****
  • Posts: 3051
Re: Tratamento de arquivos do tipo PalavraChave=Valor
« Reply #12 on: November 19, 2011, 06:18:02 pm »
Note que a edição manual destes arquivos pode levar a falhas no seu carregamento.

nightrider

  • Full Member
  • ***
  • Posts: 139
Re: Tratamento de arquivos do tipo PalavraChave=Valor
« Reply #13 on: November 19, 2011, 11:37:33 pm »
Mais algumas duvidas. As ultimas espero.

1. O que tá após o sinal de igual tem que estar, necessariamente, entre aspas(alias que aspas? Duplas ou simples?)
Se nao precisar estar entre aspas, o valor é considerado desde o = até o primeiro branco? Pode haver branco antes e depois do =?

2. Tenho 1 arquivo:
[teste]
aaa=1
bbb=3
ccc=5

Como substituo todo conteudo do arquivo? Deleto-o e crio de novo? Ou tem outro jeito?

3. Dado o mesmo arquivo, como substituo o valor de bbb de 3 para, p/exemplo, 57?

typo

  • Hero Member
  • *****
  • Posts: 3051
Re: Tratamento de arquivos do tipo PalavraChave=Valor
« Reply #14 on: November 19, 2011, 11:46:44 pm »
Procure fazer alguns testes com a classe por sua conta e isso responderá à maioria das perguntas. Para mudar o valor de uma chave, use WriteString com o novo valor.

 

TinyPortal © 2005-2018