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.