|
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
mastersoftware Aprendiz
Registrado: Sexta-Feira, 30 de Mai de 2008 Mensagens: 187
|
Enviada: Dom Set 29, 2019 8:49 am Assunto: Escrever arquivo texto com milhões de linhas |
|
|
Bom dia pessoal,
Tenho uma tabela do banco de dados para escrever em um arquivo texto, que tem 6 milhões de linhas.
Da seguinte maneira abaixo :
While not tabvendas.eof do
begin
AssignFile(arqBackup, FsNomeArquivo);
if not FileExists(FsNomeArquivo) then
Rewrite(arqBackup)
else
Append(arqBackup);
WriteLn(arqBackup, sStringSql);
tabvendas.next;
end;
Realizando testes, descobri que este aquivo demora demais pra ser escrito linha a linha, ( cerca de 6 horas ).
Gostaria de saber com o pessoal do fórum.
Existe alguma maneira que consiga realizar esta tarefa de uma forma mais rápida ?
Obrigado. |
|
Voltar ao Topo |
|
|
anderbelluno Colaborador
Registrado: Quarta-Feira, 23 de Novembro de 2011 Mensagens: 1029 Localização: Cianorte-PR
|
Enviada: Dom Set 29, 2019 2:15 pm Assunto: |
|
|
StringList e faz um SaveToFile |
|
Voltar ao Topo |
|
|
johnny-walker Moderador
Registrado: Sábado, 4 de Outubro de 2003 Mensagens: 10653 Localização: Contagem/MG - BRAZIL
|
|
Voltar ao Topo |
|
|
mastersoftware Aprendiz
Registrado: Sexta-Feira, 30 de Mai de 2008 Mensagens: 187
|
Enviada: Sex Out 04, 2019 9:42 am Assunto: |
|
|
Show vou verificar.
Obrigado. |
|
Voltar ao Topo |
|
|
marcieldeg Colaborador
Registrado: Terça-Feira, 5 de Abril de 2011 Mensagens: 1054 Localização: Vitória - ES
|
Enviada: Dom Out 27, 2019 5:23 pm Assunto: Re: Escrever arquivo texto com milhões de linhas |
|
|
mastersoftware escreveu: | Bom dia pessoal,
Tenho uma tabela do banco de dados para escrever em um arquivo texto, que tem 6 milhões de linhas.
Da seguinte maneira abaixo :
While not tabvendas.eof do
begin
AssignFile(arqBackup, FsNomeArquivo);
if not FileExists(FsNomeArquivo) then
Rewrite(arqBackup)
else
Append(arqBackup);
WriteLn(arqBackup, sStringSql);
tabvendas.next;
end;
Realizando testes, descobri que este aquivo demora demais pra ser escrito linha a linha, ( cerca de 6 horas ).
Gostaria de saber com o pessoal do fórum.
Existe alguma maneira que consiga realizar esta tarefa de uma forma mais rápida ?
Obrigado. |
Amigo, o problema é que você está abrindo o arquivo a cada iteração do loop. Essa operação, apesar de individualmente ser rápida, fica lenta ao ser executada inúmeras vezes.
Tente assim que notará melhora no resultado:
Código: | AssignFile(arqBackup, FsNomeArquivo);
if not FileExists(FsNomeArquivo) then
Rewrite(arqBackup)
else
Append(arqBackup);
while not tabvendas.eof do
begin
WriteLn(arqBackup, sStringSql);
tabvendas.Next;
end;
CloseFile(arqBackup); |
_________________ "Olha a interface da IDE! Será que ela é? Será que ela é? DELPHI!" |
|
Voltar ao Topo |
|
|
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|