Fórum Erro ao Abrir um IniFile, o que pode ser? #296768

23/09/2005

0

Olá, tenho o seguinte comando:

//var
// Data1: TIniFile;
begin
 Data1 := TIniFile.Create(ExtractFilePath(Application.ExeName) + ´rede.ini´);
 _CNPJ := Data1.ReadString(´Principal´, ´CNPJ´, ´´);


Beleza, funciona legal em uma sistema meu, agora que copiei o mesmo sistema, e estou mudando as telas, ele da o erro de memoria...


o que pode ser?

P.S.: o Arquivo já existe e tem o Path CNPJ corretamente.


Desde ja agradeço


Titanius

Titanius

Responder

Posts

23/09/2005

Massuda

Do jeito que está, seu código não compila... afinal, onde Data1 está declarado?


Responder

Gostei + 0

23/09/2005

Titanius

oops desculpe massuda, o certo é:
var
 Data1: TIniFile;
begin
 _Abrindo := True;
 Data1 := TIniFile.Create(ExtractFilePath(Application.ExeName) + ´\redeminas.ini´);
 _CNPJ := Data1.ReadString(´Principal´, ´CNPJ´, ´´);



foi mal.. :roll:

O mais estranho é que se eu deleto o arquivo, ele cria pra mim o ini em branco, mas se eu for nele e por os dados, ele da o erro de memoria...


Responder

Gostei + 0

23/09/2005

Massuda

O mais estranho é que se eu deleto o arquivo, ele cria pra mim o ini em branco, mas se eu for nele e por os dados, ele da o erro de memoria...
Não entendi, mas talvez isso ajude... dependendo do Windows que você está usando, o conteúdo do arquivo INI é bufferizado internamente pelo Windows; ele é lido quando você cria o objeto TIniFile. Se você escrever no arquivo e quiser evitar a bufferização, chame TIniFile.UpdateFile após completar as operações de escrita.

Com relação ao erro de memória, o que você chama de erro de memória... um Access Violation?


Responder

Gostei + 0

23/09/2005

Titanius

Isso mesmo um Access Violation. Estranho é que se eu debugar antes da chamada, ou seja, colocar um BreakPoint antes dele, ele da o erro, e se eu por depois ele nao da o erro... muito estranho mesmo.


Responder

Gostei + 0

23/09/2005

Massuda

...se eu debugar antes da chamada....
Chamada do que? Talvez fosse melhor você postar um trecho maior de código. O que você postou está OK.


Responder

Gostei + 0

23/09/2005

Titanius

var
 Dados: TIniFile;
 i: integer;
begin
 _Abrindo := True;
 auAutoUpgrader1.CheckUpdate;  (# 1 )
 Dados := TIniFile.Create(ExtractFilePath(Application.ExeName) + ´\redeminas.ini´);
 _CNPJ := Dados.ReadString(´Principal´, ´CNPJ´, ´´);
 
 _Tipo := Uppercase(Trim(´FILIAL´)); ( 2 )



Se eu der no no. 1 ele da erro, e se eu parar no 2 ele nao da erro.. muito estranho...


[]s


Responder

Gostei + 0

23/09/2005

Massuda

Quando o código que você postou está sendo executado? (Parece ser no OnCreate de algum form)

O que é esse auAutoUpgrader1? Já experimentou tirar a chamada ao AutoUpgrader1.checkUpdate?


Responder

Gostei + 0

23/09/2005

Titanius

jah tentei sem ele... to achando que eh pau no meu debug mesmo...


Responder

Gostei + 0

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

Aceitar