Aqruivos INI, como manipular?

Delphi

25/11/2004

:shock:

Blz pessoal?

estou com um problema, quando declaro o uma variavel do tipo TIniFile o programa me retorna um erro :[color=red:7b4d5691bd][Error] uTeste.pas(28): Undeclared identifier: ´TIniFile´[/color:7b4d5691bd].


não entendo o porque...

olhem o codigo:

procedure TForm1.FormCreate(Sender: TObject);
var
  IniFile : TIniFile;
begin

  ZConnection1.HostName:=IniFile.ReadString(´confi´,´computador´, ´localhost´);
  ZConnection1.User:=IniFile.ReadString(´confi´,´usuario´, ´´);
  ZConnection1.Protocol:=IniFile.ReadString(´confi´,´protocolo´, ´´);
  ZConnection1.Database:=IniFile.ReadString(´confi´,´banco´, ´´);
end;



Douglasf

Douglasf

Curtidas 0

Respostas

Massuda

Massuda

25/11/2004

Faltou por IniFiles no uses da unit.


GOSTEI 0
Douglasf

Douglasf

25/11/2004

Valew pela dica mas continua dando erro:

Mas agora é outro: aparece o seguinte

Access violation at address 00506a98 in module ´TESTE.EXE´.
isso acontece quando o Connection.Hostname vai receber o valor do arquivo.
olhe o codigo:

procedure TForm1.FormCreate(Sender: TObject);
var
IniFile : TIniFile;

begin
IniFile := TIniFile(ChangeFileExt(Application.ExeName,´.ini´));
ZConnection1.HostName:=IniFile.ReadString(´confi´,´computador´,´´);
ZConnection1.User:=IniFile.ReadString(´confi´,´usuario´, ´´);
ZConnection1.Protocol:=IniFile.ReadString(´confi´,´protocolo´, ´´);
ZConnection1.Database:=IniFile.ReadString(´confi´,´banco´, ´´);

end;


GOSTEI 0
Rômulo Barros

Rômulo Barros

25/11/2004

Coloco seu código no evento [b:ec322dae46]OnShow [/b:ec322dae46]do Formulário.


GOSTEI 0
Massuda

Massuda

25/11/2004

Faltou criar o objeto TIniFile:
var
  IniFile: TIniFile;
begin
  IniFile := TIniFile.Create(ChangeFileExt(Application.ExeName,´.ini´)); 
Para sua infelicidade, seu código original compila sem erros, mas está completamente errado; isto:
var
  IniFile: TIniFile;
begin
  IniFile := TIniFile(ChangeFileExt(Application.ExeName,´.ini´)); 
na verdade converte uma string (resultado de ChangeFileExt) em um objeto TIniFile e por isso dá o AV.

Para evitar isso no futuro, evite construções do tipo
Variável := Tipo(OutraVariável)
e dê preferência pela construção
Variável := OutraVariável as Tipo;
quando Tipo for uma classe.


GOSTEI 0
Douglasf

Douglasf

25/11/2004

Deu tudo certo aqui...


Muito obrigado.


GOSTEI 0
POSTAR