Dividir registro do BD em vários arquivos txt

19/03/2013

0

Boa noite.

Bom, estou querendo criar vários arquivos .txt a partir dos registros que tenho no banco.

Por exemplo dividir 600 registros em 30 arquivos .txt, para que cada um tenha 20 registros nele.

Estou fazendo isso para enviar mensagens separadas com o componente AcbrSMS, pq quando tento enviar todas de uma vez ele apresenta problema de TimeOut, e a única solução que achei foi essa, vi no fórum do ProjetoAcbr que mudando algumas configurações, como o Intervalo de Mensagens, podia dar certo, mas aqui não mudou muita coisa.

Agora a questão é que não sei por onde começar hehe, se alguém tiver alguma ideia por onde eu possa começar eu agradeço a ajuda :)

Grato.
Vander Carlos

Vander Carlos

Responder

Posts

19/03/2013

Joel Rodrigues

Opa.
Faz um loop no dataset, e a cada 30 registros percorridos (guarde isso num contador de loop e verifique se ele é divisível por 30), crie um novo arquivo e salve o texto. Você pode usar a classe TStringList, que cria facilmente um arquivo de texto e é simples de manipular.
Boa sorte.
Responder

22/03/2013

Vander Carlos

Joel, desculpe a demora.

Vou fazer alguns testes, quando tiver tudo ok posto aqui novamente.

Obrigado.
Responder

22/03/2013

Bruno Leandro

Vander de uma olhada neste exemplo acredito que com poucas adaptações funcione da forma que voce deseja, qualquer duvida estamos a disposição


var
i,i2: integer;
slVar: tstringlist;
begin
query.first;
slVar := tstringlist.create;
i := 1;
i2 := 0;
while not(query.eof) do
begin
slVar.add('conteudo da linha '+IntToStr(i2));

i2 := i2 + 1;

if (i2 = 20) then
begin
i2 := 0;
while (fileexists('C:\caminho\nome_'+IntToStr(i)+'.txt')) then
begin
i := i + 1;
end;
slVar.savetofile('C:\caminho\nome_'+IntToStr(i)+'.txt');
slVar.clear;
end;
query.next;
end;
if (i2 > 0) then
begin
i2 := 0;
while (fileexists('C:\caminho\nome_'+IntToStr(i)+'.txt')) then
begin
i := i + 1;
end;
slVar.savetofile('C:\caminho\nome_'+IntToStr(i)+'.txt');
slVar.clear;
end;

freeandnil(slVar);
end;
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar