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]

Responder a