na verdade .. montei um framework para gerar arquivos do governo... ele gera tanto arquivos de posição fixa (como o Sintegra), como arquivos separados com pipe (sped), entre outras funções ele visualiza os arquivos TXT como o Sintegra faz com o arquivo dele
neste framework eu cadastro o layout, ou seja os registros, e cada campo com tamanho e tipo de arquivo... e eu ao gerar o txt, ele já faz algumas conferencias de acordo com o layout No sped, vc tem alguns registros Ex...I030 , que tem um campo com o total de registros do I030 que tem a quantidade de linhas do arquivo, ou seja logo no inicio do arquivo ele já me pede o total de linhas, neste caso eu tenho duas opções ou antes de gerar esta linha "simulo" a geração para saber o total de linhas, ou então arrumo um jeito de editar a linha apos eu gerar o arquivo inteiro. Entre gerar o arquivo e abrir o texto procurando por registro/posição no arquivo txt e ai substituir, eu preferi gravar tudo em cds e manipular o cds alterando o que é necessário From: Fabiano Moura Sent: Friday, July 16, 2010 10:49 PM To: delphi-br@yahoogrupos.com.br Subject: Re: [delphi-br] ClientDataSet - Out Of Memory *Boa noite!* Valdemir, por que você pega os dados da tabela e gera no clientdataset, não é mais fácil você pegar (restaurar) os dados do banco e jogar direto no arquivo texto? *Obrigado,* ** *Fabiano* Em 16 de julho de 2010 22:31, Valdemir (yahoo) <valdemi...@yahoo.com.br>escreveu: > delphi 2010, sped contabil... com mais ou menos 400 mil lançamentos no ano > de 2009 > > > From: Jean Barreiros > Sent: Friday, July 16, 2010 1:23 PM > To: delphi-br@yahoogrupos.com.br > Subject: Res: [delphi-br] ClientDataSet - Out Of Memory > > > > Olá amigo qual versão do delphi você tá usando > e qual SPED você star gerando o txt, Fiscal ou Contabil? > =================================== > Jean Barreiros > Programador/Web-Designer > Delphi|C++|PHP|JavaScript > FireBird|MySql|SQLServer > PostGree|Oracle > msn: delphij...@gmail.com > e-mail: delphij...@yahoo.com.br > =================================== > > ________________________________ > De: Valdemir (yahoo) <valdemi...@yahoo.com.br> > Para: delphi-br@yahoogrupos.com.br > Enviadas: Quinta-feira, 15 de Julho de 2010 18:08:49 > Assunto: [delphi-br] ClientDataSet - Out Of Memory > > Pessoal estou montando uma rotina para gerar o sped, em um movimento > pequeno ok > a rotina roda legal, mas em um movimento grande ao dar insert no CDS da > erro Out > Of Memory, apos processar um grande numero de registros > > Eu tenho um CDS onde vou armazenando os dados, para depois fazer um loop e > jogar > no TXT, para mim foi a saída mais fácil que eu encontrei, primeiro leio as > tabelas e jogo no CDS, ai no CDS já com os dados no formato do governo, > faço um > loop no cds e gravo para o txt > > A principio estava usando um CDS em memoria, e ai é logico que deu o erro, > mas > ao preencher a propriedade FileName com o nome do arquivo ... ele começou a > gerar os dados em arquivo binário, até ai ok, mas não encontrei nenhuma > propriedade que eu informo que ele descarregue da memoria ram a cada x > registros, então mesmo informado a propriedade nome do arquivo .. ele cria > um > arquivo.. e começa o processo, mas o tamanho fica com 0 até dar out of > memory, e > ai o tamanho do arquivo salta de 0 para um numero em bytes que ele > conseguiu > gerar > > Da a entender que mesmo informando o FileName, ele continua trabalhando > somente > com memoria ram, e só descarrega ela.. quando da o erro, eu imaginei que > como > esta informado o nome do arquivo, ele automaticamente ao carregar a RAM > iria > salvar os dados em disco, procurei no help mas não encontrei nenhum método > ou > propriedade para isso, antigamente no bde existia uma api para isso, mas no > ClientDataSet eu não encontrei > > Alguém faz idéia do que possa estar ocorrendo ? > > Obrigado > Valdemir > > [As partes desta mensagem que não continham texto foram removidas] > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > ------------------------------------ > > -- > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > > > [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]