Como exportar DBGrid em Delphi com Separador

Nesta Quick Tips, mostrarei como podemos exportar para um arquivo texto, separado por qualquer caractere, os registros encontrados em um DBGrid.

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:

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.

Artigos relacionados