Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Duvidas com arquivo CSV! "AssignFile"


jaumDoDelphi

Pergunta

Ola a todos venho aqui mais uma vez pediar ajuda! :)

Estou utilizando o seguinte comando para exportar as informações da DB para um arquivo CSV!

E como meu DB é MASTERxDETAILS no momento estou gerando 2 arquivos.

Eu gostaria de gerar apenas um arquivo exp.

Linha 1 = Info do MASTER

Linha 2 = detalhes

Linha 3 = detalhes etc...

Este é o codigo que estou utilizando no momento.

/// MESTRE

AssignFile(F,exeDIR+'CSV\'+dbEDNome.TEXT+'.CSV');

Rewrite(F);

begin

Writeln(F,DM.QLIST.FieldByName('COD_INT').AsString + PathSep +

DM.QPROJ.FieldByname('NOME').AsString + PathSep +

DM.QPROJ.FieldByname('ENDERE').AsString + PathSep +

DM.QPROJ.FieldByname('BAIRRO').AsString + PathSep +

DM.QPROJ.FieldByname('CIDUF').AsString + PathSep +

DM.QPROJ.FieldByname('CEPZIP').AsString + PathSep +

DM.QPROJ.FieldByname('PAIS').AsString);

end;

CloseFile(F);

end;

/// DETALHES

AssignFile(F,exeDIR+'CSV\'+dbEDNome.TEXT+'.CSV');

ReWrite(F);

DM.QLIST.First;

While not DM.QLIST.Eof do

begin

Writeln(F,(DM.QLIST.FieldByName('COD_INT').AsString) + PathSep +

DM.QLIST.FieldByname('TEL').AsString + PathSep +

DM.QLIST.FieldByname('FAX').AsString + PathSep +

DM.QLIST.FieldByname('IPPHONE').AsString + PathSep +

DM.QLIST.FieldByname('EMAIL').AsString + PathSep +

DM.QLIST.FieldByname('OBS').AsString);

DM.QLIST.Next;

end;

CloseFile(F);

quando mando salvar, ele salva corretamente o arquivo JAUM.CSV (MESTRE)

mas, quando for salvar o arquivo JAUM.CSV (DETALHES) as informações do arquivo MESTRE são perdidas.

Teria algum comando especifico para ao invez de Sobreescrever tudo ele apenas Adicionar novas linha?

já tentei mudar ReWrite(F); por Write(F); mas ele da um erro I/O 103! nem sei se este comando existe hehehee.

se alguém souber como resolver este problema, eu agradeço muito!

Editado por jaumDoDelphi
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
Teria algum comando especifico para ao invez de Sobreescrever tudo ele apenas Adicionar novas linha?

Tem sim ... é o append

exemplo:

procedure TForm1.Button1Click(Sender: TObject);
var
  myFile : TextFile;
  text   : string;

begin
  AssignFile(myFile, 'Test.txt');
  ReWrite(myFile);

  WriteLn(myFile, 'Hello');
  WriteLn(myFile, 'World');

  CloseFile(myFile);

  // Reabre para adicionar uma linha no final do texto
  Append(myFile);

  // Escreve isto no final do texto 
  WriteLn(myFile, 'Linha adicionada no final do texto');

  // Fecha o arquivo
  CloseFile(myFile);

  // Reabre o arquiv para leitura
  Reset(myFile);

  // Mostra o conteudo do arquivo
  while not Eof(myFile) do
  begin
    ReadLn(myFile, text);
    ShowMessage(text);
  end;

  // Fecha o arquivo novamente
  CloseFile(myFile);
end;

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...