Erro ao Abrir um IniFile, o que pode ser?
Olá, tenho o seguinte comando:
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
//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
Curtidas 0
Respostas
Massuda
23/09/2005
Do jeito que está, seu código não compila... afinal, onde Data1 está declarado?
GOSTEI 0
Titanius
23/09/2005
oops desculpe massuda, o certo é:
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...
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...
GOSTEI 0
Massuda
23/09/2005
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?
GOSTEI 0
Titanius
23/09/2005
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.
GOSTEI 0
Massuda
23/09/2005
...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.GOSTEI 0
Titanius
23/09/2005
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
GOSTEI 0
Massuda
23/09/2005
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?
O que é esse auAutoUpgrader1? Já experimentou tirar a chamada ao AutoUpgrader1.checkUpdate?
GOSTEI 0
Titanius
23/09/2005
jah tentei sem ele... to achando que eh pau no meu debug mesmo...
GOSTEI 0