Ir para conteúdo
  • Cadastre-se

dev botao

Out of Memory ao gerar SPED PIS/COFINS


  • Este tópico foi criado há 4419 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.