Quick Tips : Gerar txt usando Delimiter
Veja nesta Quick como gerar txt usando Delimiter.
Olá galera, nesta Quick Tips, irei mostrar como gerar um arquivo txt separado por um determinado delimitador, podendo ser usado para geração de arquivos de integração por exemplo.
Vamos à construção do Exemplo:
Primeiramente vamos adicionar um novo projeto, e nele incluir uma nova unit, salvar a mesma como uDelimitador, e iremos criar uma classe com 2 propertys do tipo TStringList(1 lista irá adicionar os campos da nossa tabela, e a outra terá a finalidade de montar o arquivo separado pelo delimitador dividindo cada linha da tabela em uma linha na lista), um método Create, e um outro Save, veja a implementação completa da mesma.
unit uDelimitador;
interface
uses Classes;
Type
TDelimitador = class
private
FListaPadrao: TStringList;
FListaFinal: TStringList;
procedure SetListaPadrao(const Value: TStringList);
procedure SetListaFinal(const Value: TStringList);
{ private declarations }
protected
{ protected declarations }
public
{ public declarations }
constructor Create;
property ListaPadrao : TStringList read FListaPadrao write SetListaPadrao;
property ListaFinal : TStringList read FListaFinal write SetListaFinal;
procedure Save(FileName : String);
end;
implementation
{ TDelimitador }
constructor TDelimitador.Create;
begin
inherited Create;
ListaPadrao := TStringList.Create;
ListaFinal := TStringList.Create;
end;
procedure TDelimitador.Save(FileName : String);
begin
FListaFinal.SaveToFile(FileName);
end;
procedure TDelimitador.SetListaFinal(const Value: TStringList);
begin
FListaFinal := Value;
end;
procedure TDelimitador.SetListaPadrao(const Value: TStringList);
begin
FListaPadrao := Value;
end;
end.
Agora iremos para o formulário e prepararmos a tela.
Adicione no formulário
·1 ClientDataSet
·1 DataSorce
·1 DBGrid
·1 Memo
·1 BitBtn
Obs : A forma que foi desenvolvido você não precisa criar exatamente os campos que estão abaixo representados, pode ser com uma conexão a uma tabela de seu banco de dados sem problema nenhum
procedure TFrmPrincipal.BtnGerarClick(Sender: TObject);
Var
I: Integer;
begin
Delimitador := TDelimitador.Create;
with Delimitador do
begin
//Digite aqui o Delimitador '|' ou ',' por exemplo
ListaPadrao.Delimiter := ';';
while not CDS.Eof do
begin
//Loop para pegar o conteudo de todas as colunas do CDS
for I := 0 to CDS.FieldCount - 1 do
ListaPadrao.Add(CDS.Fields[I].Value);
{Adiciona na lista final todo conteúdo das
colunas do CDS em uma única linha }
ListaFinal.Add(ListaPadrao.DelimitedText);
CDS.Next;
Delimitador.ListaPadrao.Clear;
end;
{Método para salvar fisicamente o arquivo Save('c:\listafinal.txt');
Memo1.Lines.AddStrings(ListaFinal);
end;
end;
Veja o resultado final
Fico por aqui ate à próxima Quick Tips.
Um abraço
Wesley Y
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo