jaumDoDelphi Postado Julho 12, 2010 Denunciar Share Postado Julho 12, 2010 (editado) 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 MASTERLinha 2 = detalhesLinha 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 dobeginWriteln(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 Julho 12, 2010 por jaumDoDelphi Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Julho 12, 2010 Denunciar Share Postado Julho 12, 2010 Teria algum comando especifico para ao invez de Sobreescrever tudo ele apenas Adicionar novas linha?Tem sim ... é o appendexemplo: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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jaumDoDelphi Postado Julho 12, 2010 Autor Denunciar Share Postado Julho 12, 2010 Opa, brigadaum JhonasIsso resolveu o meu problema.E Ainda você postou varios comando para o AssignFileRealmente muito obrigado! :D Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
jaumDoDelphi
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 jaumDoDelphiLink para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
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.