Como exportar de um DBGrid para um arquivo .txt
17/12/2003
0
Estou usando um DbGrid para exibir os dados de uma tabela feita no paradox 7 (uso delphi 5!) e gostaria de exportar esses dados contidos na tabela para um arquivo .txt, lembrando q não uso SQL nem nenhum componente um pouco mais complexo para acessar o BD,pois fiz um código bem simples e funcional... porém essa parte de exportação eu não faço nem idéia de como é feito...
ów, e agora? quem poderá me ajudar?
Maluco Tubaina
Posts
17/12/2003
Aroldo Zanela
A forma mais simples seria utilizar um objeto TTable apontando para um arquivo ASCII e utilizar o método BatchMove.
22/12/2003
Maluco Tubaina
se possível, teria como vc me explicar melhor o funcionamento desse procedimento (apontar pro ASCII e BatchMove)???
grato pela atenção e pela paciência...
23/12/2003
Gilson_our
Exemplo:
procedure Button1.Click(Sender: TObject); var arquivo:textfile; begin rewrite(arquivo,´C:\tabela.txt´); //Cria o arquivo; writeln(arquivo, ´CAMPO1 - CAMPO2 - CAMPO3 - CAMPO4 - CAMPO5´); DataModule1.tabela.first; while not DataModule1.tabela.eof do begin append(arquivo); writeln(arquivo,DataModule1.tabela.fieldbyname(´CAMPO1´).asstring+´ - ´+ DataModule1.tabela.fieldbyname(´CAMPO2´).asstring+´ - ´+ DataModule1.tabela.fieldbyname(´CAMPO3´).asstring+´ - ´+ DataModule1.tabela.fieldbyname(´CAMPO4´).asstring+´ - ´+ DataModule1.tabela.fieldbyname(´CAMPO5´).asstring); DataModule1.tabela.next; end; closefile(arquivo); end;
Bom, ai vc vai colocando quantos campos da tabela vc quer exportar para o txt e também pode-se mudar o delimitador se quiser.
07/01/2004
Maluco Tubaina
Não sei por que, mas quando uso este codigo q vc me passou o campo da tabela é escrito no nome do arquivo, e não dentro dele, tipo assim:
o campo ´nome do funcionario´ aparece no lugar do nome do arquivo (ex: ´fulano de tal.txt´), ao invés de aparecer na lista que era para estar gravada dentro do arquivo, por que está acontecendo isto?
grato pela atenção e pela paciência...
07/01/2004
Maluco Tubaina
porém só estou conseguindo colocar a última linha da tabela, e não toda ela, q é pra ser o correto...
abaixo segue o código q estou usando, gostaria de saber como faço para poder colocar uma linha da tabela embaixo de outra e montar ent~~ao uma lista...
while not Db_geral.eof do
begin
ReWrite (Arq);
WriteLn (Arq, Db_Geral.fieldbyname(´Chapa´).asstring+
´ - ´ + Db_Geral.FieldByName (´Nome do Funcionario´).asstring+
´ - ´ + Db_Geral.FieldByName (´H.E. 50¬´).asstring+
´ - ´ + Db_Geral.FieldByName (´H.E. 60¬´).asstring+
´ - ´ + Db_Geral.FieldByName (´H.E. 100¬´).asstring+
´ - ´ + Db_Geral.FieldByName (´Faltas´).asstring+
´ - ´ + Db_Geral.FieldByName (´Ass. Odonto.´).asstring+
´ - ´ + Db_Geral.FieldByName (´Ass. Médica´).asstring+
´ - ´ + Db_Geral.FieldByName (´Vale Transp.´).asstring);
Db_Geral.Next;
end;
closefile(arq);
Grato pela atenção e pela paciencia...
08/01/2004
Czapelini
08/01/2004
Gilson_our
Db_geral.first;
ai depois vem o while not Db_geral.eof do begin
append(Arq); //e não rewrite como disse o czapelini
Testei aqui e deu certo, só não consigo ordenar os campos pegando o maior valor do campo e deixando os outros registros desse campo com o mesmo tamanho, isso no arquivo txt.
Mas todas as linhas aparecem uma embaixo da outra.
08/01/2004
Czapelini
Leia novamente o que eu escrevi.... :shock:
[b:0b7153aeae]O comando Rewrite apaga todo o conteúdo do arquivo. No lugar de Rewrite use Append(arq), pois este comando que insere linhas...[/b:0b7153aeae]
Sem ressentimentos, mas o que escrevi está certo, assim como o que vc escreveu.
Abraços!
08/01/2004
Gilson_our
Certo?
Abraços
Mas voltando ao Delphi, se alguem souber como exportar as linhas de uma tabela de maneira organizada para um txt, assim como no DBGrid, poste aqui.
13/01/2004
Maluco Tubaina
Gostaria de agradecer as dicas e aproveitar pra fazer mais uma pergunta:
o arquivo texto que estou gerando deve conter uma padronização no estilo de um indice, tipo assim, ´nome do funcionario´ ´espaço vazio´ ´chapa do func´, usando um esquema parecido com a tabulação e colunas do Word, alguém faz idéia de como posso fazer isso?
grato pela atenção e pela paciência...
13/01/2004
Maluco Tubaina
A exportação do db_Grid para o .txt está ok, porém o correto é ter tipo de um cabeçalho (Ex: Empresa XXX, Folha de Pagto mes 01/04) e nas linhas inferiores os dados da tabela...
O problema é que pra cada linha da tabela é gerado um novo cabeçalho, ou seja, aparece ´Empresa XXX, Folha de Pagto mes 01/04´, na outra linha os dados do funcionario nº1, na 3º linha aparece de novo ´Empresa XXX, Folha de Pagto mes 01/04´ e na 4º linha os dados do funcionario nº2...
como eu devo fazer para tentar tirar o cabeçalho do loop do código???
grato pela atenção e pela paciência...
14/01/2004
Gilson_our
writeln(Arq, ´Empresa XXX - Folha de Pagto mes 01/04´);
antes do código Db_geral.first;
while not Db_geral.eof do begin
Sobre fazer tabulação e colunas do Word no arquivo txt eu não sei.
Clique aqui para fazer login e interagir na Comunidade :)