Jump to content

dev botao

Out of Memory ao gerar SPED PIS/COFINS


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

Recommended Posts

Boa tarde,

Meu sistema atende o segmento de atacadistas e distribuidoras, um cliente em particular a movimentação é muito grade, ocorrendo assim problema de "Out Of Memory" ao gerar o SPED. Identifiquei a causa como sendo a TStringList usada internamente para acumulando em memoria o conteudo do arquivo, também a Object list que acumula todos os objetos que sao construidos.

Segue anexo o codigo que construi contendo as seguintes alterações (apenas os arquivos atualizados)

1º) Removi a TStringList que acumulava os dados para o arquivos, escrevendo diretamente em um arquivo utilizando o TextFile

2º) No bloco C (este que estava dando Out Of Memory) criei o metodo "SalvaERemoveCXXX" que irá escrever o conteudo do ultimo objeto em arquivo e remove-lo da memória. Assim no final da geração do bloco C, chamo o metodo de finalização gerando apenas os blocos finais.

Esse codigo fiz para resolver um problema pontual, infelizmente devido a falta de tempo não pude escrever da melhor forma, mas ficaria feliz em colaborar com o projeto.

Att,

sped.zip

Link to comment
Share on other sites

Boa tarde,

Meu sistema atende o segmento de atacadistas e distribuidoras, um cliente em particular a movimentação é muito grade, ocorrendo assim problema de "Out Of Memory" ao gerar o SPED. Identifiquei a causa como sendo a TStringList usada internamente para acumulando em memoria o conteudo do arquivo, também a Object list que acumula todos os objetos que sao construidos.

Segue anexo o codigo que construi contendo as seguintes alterações (apenas os arquivos atualizados)

1º) Removi a TStringList que acumulava os dados para o arquivos, escrevendo diretamente em um arquivo utilizando o TextFile

2º) No bloco C (este que estava dando Out Of Memory) criei o metodo "SalvaERemoveCXXX" que irá escrever o conteudo do ultimo objeto em arquivo e remove-lo da memória. Assim no final da geração do bloco C, chamo o metodo de finalização gerando apenas os blocos finais.

Esse codigo fiz para resolver um problema pontual, infelizmente devido a falta de tempo não pude escrever da melhor forma, mas ficaria feliz em colaborar com o projeto.

Att,

Está dando erro na rotina Limpar, na unit ACBrEPCBloco_0_Class.pas. Ela não foi criada em lugar nenhum!!

Link to comment
Share on other sites

  • Consultores

Não seria mais fácil tentar implementar igual o SPED Fiscal?

[]'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

  • Este tópico foi criado há 4268 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.