Olá galera, nesta Quick Tips, mostrarei como podemos exportar para um arquivo texto, separado por qualquer caractere os registros encontrados em um DBGrid.
Vamos então criar uma nova aplicação e salvar seu formulário como uFrmPrincipal.pas, já mude seu nome para FrmPrincipal, e salve o projeto como prjExportarDBGrid.dprj.
Agora adicione:
- 1 TButton (BtnIniciarImportacao)
- 1 TDBGrid (DBGridCliente)
- 1 TClientDataSet (CDSCliente, estou usando um CDS temporário )
Vamos inicialmente criar uma procedure:
procedure ExportarDBGrid (const xCaracter: String);
unit uFrmPrincipal;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, Grids, DBGrids, DBClient, ExtCtrls, DBCtrls, StdCtrls, Mask,
ShellAPI;
type
TFrmPrincipal = class(TForm)
CDSCliente: TClientDataSet;
DSCliente: TDataSource;
DBGridCliente: TDBGrid;
CDSClienteIDCliente: TStringField;
CDSClienteDescricao: TStringField;
CDSClienteSexo: TStringField;
CDSClienteEndereco: TStringField;
Label1: TLabel;
DBEdit1: TDBEdit;
Label2: TLabel;
DBEdit2: TDBEdit;
Label3: TLabel;
DBEdit3: TDBEdit;
Label4: TLabel;
DBEdit4: TDBEdit;
DBNavigator1: TDBNavigator;
BtnIniciarImportacao: TButton;
private
{ Private declarations }
procedure ExportarDBGrid(const xCaracter : String);
public
{ Public declarations }
end;Vejamos a implementação desta procedure, mas antes disso vamos dar uses em ShellAPI, e logo vocês vão ver o motivo.
procedure TFrmPrincipal.ExportarDBGrid(const xCaracter: String);
Var
I : Integer;
xArquivoTxt : TStringList;
xLinhaCompleta : String;
begin
xArquivoTxt := TStringList.Create;
while not DBGridCliente.DataSource.DataSet.Eof do
begin
xLinhaCompleta := '';
for I := 0 to DBGridCliente.Columns.Count - 1 do
begin
xLinhaCompleta := xLinhaCompleta +
DBGridCliente.Columns[I].Field.AsString + xCaracter;
end;
DBGridCliente.DataSource.DataSet.Next;
xArquivoTxt.Add(xLinhaCompleta);
end;
xArquivoTxt.SaveToFile('C:\arquivo.txt');
{ O motivo para termos dado uses em ShellAPI , foi para que pudéssemos
abrir diretamente o arquivo txt, usando a função ShellExecute }
ShellExecute(handle,'open',PChar('C:\arquivo.txt'), '','',SW_SHOWNORMAL)
end;Agora vamos ver como usar nossa função
procedure TFrmPrincipal.BtnIniciarImportacaoClick(Sender: TObject);
begin
ExportarDBGrid(';');
end;Fico por aqui e ate à próxima Quick Tips. Baixe o exemplo completo neste post.