Jump to content

dev botao

'out Of Memory' Ao Salvar Arquivo Txt


Leandro Paixão
Go to solution Solved by EMBarbosa,
  • Este tópico foi criado há 2755 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Bom dia pessoal!
 
Estou com o seguinte problema na empresa em que trabalho:
- Geramos o SPED Contábil para um cliente que possui muitas movimentações, assim os blocos I200 e I250 chegam a ter 2 milhões de registros. Ao gerar o SPED de 12 meses, em cerca de 50 minutos ocorre o estouro de memória. Debugando as units, identifiquei que o problema ocorre na hora de carregar as informações para a StringList, exatamente na função SaveStringList, na unit ACBrSpedContabil, quando carrega os registros na chamada :

if Bloco_I.RegistroI200.Count > 0 then AStringList.Add(Trim(WriteRegistroI200));

Para resolver este problema aqui na empresa, por enquanto, alterei a forma de salvar: em vez da StringList, estou utilizando um arquivo txt, que a cada linha informada do bloco I200 eu salvo no arquivo txt.

 

Não validamos aqui todas as informações do arquivo, mas a estrutura do arquivo já está ok.

 

Existe alguma alteração e/ou correção para este ponto? Ou alguém que utiliza a mesma rotina e tem um volume parecido de informações, já passou por isso?

 

O PC que utilizamos para teste é um Dell Vostro - Pentium Dual Core - 3 GB de Ram.

 

Desde já agradeço a atenção de todos.

Leandro Paixão

[email protected]

 

Tecnólogo em Análise e Desenvolvimento de Sistemas.

Professor do Curso de Técnico em Informática.

@leandropaixao

 

 

Link to comment
Share on other sites

  • Moderadores

Bom dia!

iria sugerir usar a propriedade LinhasBuffer, que faz a gravação diretamente no txt, mas fui olhar e o código só está implementando ao fiscal e piscofins!

caso queira contribuir com o projeto e implementar isso no contábil se sinta a vontade para isso!

  • Like 1
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Link to comment
Share on other sites

  • 2 weeks later...

Bom dia!

iria sugerir usar a propriedade LinhasBuffer, que faz a gravação diretamente no txt, mas fui olhar e o código só está implementando ao fiscal e piscofins!

caso queira contribuir com o projeto e implementar isso no contábil se sinta a vontade para isso!

Bom dia Juliomar!

Realizei algumas alterações para salvar diretamente no TXT.

Para quem posso mandar os arquivos para avaliação/teste?

 

Fico no aguardo.

Um abraço

Leandro Paixão

[email protected]

 

Tecnólogo em Análise e Desenvolvimento de Sistemas.

Professor do Curso de Técnico em Informática.

@leandropaixao

 

 

Link to comment
Share on other sites

  • Consultores

Pode anexar aqui mesmo no fórum, por favor.

  • Like 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link to comment
Share on other sites

Segue então os arquivos alterados.

Qualquer dúvida só entrar em contato.

 

Um abraço!

ACBrSpedContabil_Alterado.zip

Edited by leandropaixao

Leandro Paixão

[email protected]

 

Tecnólogo em Análise e Desenvolvimento de Sistemas.

Professor do Curso de Técnico em Informática.

@leandropaixao

 

 

Link to comment
Share on other sites

Olá pessoal!

 

Realizei mais algumas alterações nos fontes, pois conforme o tamanho do arquivo ainda acontecia estouro de memória!

Segue em anexo, qualquer coisa só avisar!!

 

ACBrECDContabil_Alterado.zip

Leandro Paixão

[email protected]

 

Tecnólogo em Análise e Desenvolvimento de Sistemas.

Professor do Curso de Técnico em Informática.

@leandropaixao

 

 

Link to comment
Share on other sites

  • 3 weeks later...

Olá Pessoal!

Em nossos testes identificamos que o totalizador do registro I052 não estava aparecendo, realizei uma alteração no fonte para contabilizar este registro.

 

 

ACBrSPEDContabil.7z

  • Like 1

Leandro Paixão

[email protected]

 

Tecnólogo em Análise e Desenvolvimento de Sistemas.

Professor do Curso de Técnico em Informática.

@leandropaixao

 

 

Link to comment
Share on other sites

  • 1 month later...
  • Consultores

Olá Leandro,

 

  Fui analisar o seu código hoje mas notei que no código anexo houve implementação de eventos. Gostaria de saber o motivo.

  • Like 2

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link to comment
Share on other sites

Olá Leandro,

 

  Fui analisar o seu código hoje mas notei que no código anexo houve implementação de eventos. Gostaria de saber o motivo.

 

Bom dia Barbosa!

Já tinha comentado com o Isaque Pinheiro em outro post e estou realizando a alteração para retirada destes eventos.

 

Um abraço

  • Like 1

Leandro Paixão

[email protected]

 

Tecnólogo em Análise e Desenvolvimento de Sistemas.

Professor do Curso de Técnico em Informática.

@leandropaixao

 

 

Link to comment
Share on other sites

  • Consultores

Valeu Leandro. Assim que puder e tiver alguma novidade, avise. Bom trabalho aí!

  • Like 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link to comment
Share on other sites

Valeu Leandro. Assim que puder e tiver alguma novidade, avise. Bom trabalho aí!

 

Boa tarde Barbosa!

 

Segue os fontes alterados conforme orientações.

Foram realizadas as seguintes alterações:

- Alteração na forma de salvar o arquivo, retirando de stringList e passando a utilizar o conceito de linhasbuffer (já implementado no Fiscal e PisCofins, na qual originou este tópico)

- Alteração no registro I051  que possui o campo COD_ENT_REF para o leiaute 2 e no leiaute 3 passou a ser COD_PLAN_REF. (alterei este nome pois conforme informações o leiaute 2 foi revogado)

 

Realizei as alterações conforme orientações nesse na qual foi passado pelo Isaque Pinheiro.

Se houver algum problema por favor me avise.

 

Um abraço.

 

ArquivosACBR.7z

 

 

 

Leandro Paixão

[email protected]

 

Tecnólogo em Análise e Desenvolvimento de Sistemas.

Professor do Curso de Técnico em Informática.

@leandropaixao

 

 

Link to comment
Share on other sites

  • Consultores

Olá Leandro,

 

  Me parece que está tudo certo. Só uma pergunta, foi necessário a mudança dos métodos WriteRegistroxxxx de function para procedure, ou você fez isso mesmo para padronizar o código?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link to comment
Share on other sites

Olá Leandro,

 

  Me parece que está tudo certo. Só uma pergunta, foi necessário a mudança dos métodos WriteRegistroxxxx de function para procedure, ou você fez isso mesmo para padronizar o código?

Olá Barbosa!

Foi necessário sim, pois a forma de salvar o arquivo é diferente!!!

Leandro Paixão

[email protected]

 

Tecnólogo em Análise e Desenvolvimento de Sistemas.

Professor do Curso de Técnico em Informática.

@leandropaixao

 

 

Link to comment
Share on other sites

  • Consultores
  • Solution

Olá Barbosa!

Foi necessário sim, pois a forma de salvar o arquivo é diferente!!!

Foi pro SVN... Como eu pessoalmente não utilizo o SPED Contabil, precisamos que façam os testes.

  • Like 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link to comment
Share on other sites

Estou com problemas ao compilar o pacote ACBrSPED
 
C:\acbr\Fontes\ACBrSPED\ACBrSPEDPisCofins\ACBrEPCBlocos.pas(1541) Error: Object or class type required
C:\acbr\Fontes\ACBrSPED\ACBrSPEDPisCofins\ACBrEPCBlocos.pas(1543) Error: Object or class type required
C:\acbr\Fontes\ACBrSPED\ACBrSPEDPisCofins\ACBrEPCBloco_0.pas(46) Fatal: Could not compile used unit '..\..\..\Fontes\ACBrSPED\ACBrSPEDPisCofins\ACBrEPCBlocos.pas'
 
O problema é aqui comigo ou nos fontes do componente?
 
Ontem a tarde estava com outros erros, mas atualizei hoje e resolveu, só ficou esses ai citados acima
 
OBS: Delphi 7
Edited by evandromira
  • Like 1
Link to comment
Share on other sites

  • Consultores

 

Estou com problemas ao compilar o pacote ACBrSPED
 
C:\acbr\Fontes\ACBrSPED\ACBrSPEDPisCofins\ACBrEPCBlocos.pas(1541) Error: Object or class type required
C:\acbr\Fontes\ACBrSPED\ACBrSPEDPisCofins\ACBrEPCBlocos.pas(1543) Error: Object or class type required
C:\acbr\Fontes\ACBrSPED\ACBrSPEDPisCofins\ACBrEPCBloco_0.pas(46) Fatal: Could not compile used unit '..\..\..\Fontes\ACBrSPED\ACBrSPEDPisCofins\ACBrEPCBlocos.pas'
 
O problema é aqui comigo ou nos fontes do componente?
 
Ontem a tarde estava com outros erros, mas atualizei hoje e resolveu, só ficou esses ai citados acima
 
OBS: Delphi 7

 

Era no código. Corrigido na revisão 8770.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link to comment
Share on other sites

  • 4 months later...

Olá Leandro,

 

  Me parece que está tudo certo. Só uma pergunta, foi necessário a mudança dos métodos WriteRegistroxxxx de function para procedure, ou você fez isso mesmo para padronizar o código?

Olá Barbosa!

Foi necessário sim, pois a forma de salvar o arquivo é diferente!!!

Boa noite, tudo bem ?

Por um acaso você não teria um exemplo Do Bloco I Principalmente do Registro I052 ? Pois estou com dificuldade nesse trecho.

Obrigado.

Link to comment
Share on other sites

  • 2 weeks later...
  • Membros Pro

Boa Noite !
Depois da Atualização do Trunk2 começou a ocorrer esse erro de estouro de memória. 
Em dados de clientes com muito movimento...
Pode ter havido algum problema na migração ?
Alguém mais está tendo esse problema ?

Obrigado !
Pontelo
ESSystem
 

Link to comment
Share on other sites

  • 4 weeks later...
  • Consultores

Boa Noite !
Depois da Atualização do Trunk2 começou a ocorrer esse erro de estouro de memória. 
Em dados de clientes com muito movimento...
Pode ter havido algum problema na migração ?
Alguém mais está tendo esse problema ?

Obrigado !
Pontelo
ESSystem
 

Não... Você tem algum exemplo em como reproduzir o problema? Eu não utilizo o SPED Contabil.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link to comment
Share on other sites

  • 1 year later...
  • Este tópico foi criado há 2755 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.

The popup will be closed in 10 seconds...