Exportar Para TXT Layout Pré-Definido

1,891 views
Skip to first unread message

Diego Feijó

unread,
Oct 22, 2010, 6:56:42 AM10/22/10
to DUG-RS - Delphi Users Group Rio Grande do Sul
Buenas moçada,

Tenho que implementar uma rotina para exportar dados do banco mysql em
um arquivo texto, porém este arquivo tem um layout definido ex.
Nome tamanho 50 - inicia na posição 1 vai a 50
telefone tamnaho 14 - inicia posição 51 vai a 55
rua tamanho 50 - inicia posição 56 vai a 106

quando o campo não alcança o tamanho ele preenche com brancos ou zeros
quando número.
alguém teria alguma dica de como posso começar isto?
Pode ser com o delphi ou com o próprio select do mysql. Com select
consegui um progresso da seguinte forma porém não consigo definir o
ínicio e o fim da coluna.

SELECT

CAST(Datasaidaentrada AS CHAR(70)),
CAST(Codigo AS CHAR(100))

FROM
tbl_notafiscal

Desde já obrigado,
Diego Feijó.

Rodrigo Sebben

unread,
Oct 22, 2010, 7:14:08 AM10/22/10
to dug...@googlegroups.com
Voce precisa criar a rotina direto do sql ou pode ser por uma rotina no delphi?

O que eu faço é usar as rotinas de criação de arquivos texto. Funciona assim:

1 -  Acrescenta uma variável do tipo Textfile e outra para receber a linha do arquivo como string:
-----------------------------------------------------------------------------------------------
Var
  Linha: String;
  Texto: TextFile;
-----------------------------------------------------------------------------------------------

2 - Cria um select que retorne todas as colunas que voce precisa, com o espaçamento e caracteres corretos, depois coloca essa query dentro de um while até EOF para que ele preencha linha por linha do teu arquivo. Segue Exemplo:
-----------------------------------------------------------------------------------------------
Begin
  AssignFile(Texto,'c:\NomeArquivo.txt'); // Cria o arquivo
  Rewrite(Texto); //abre o arquivo para escrita

  Query1.open; // Roda a query que traz os resultados

  While not Query1.eof do
  Begin
    Linha := Query1Nome.Asstring + Query1Endereco.Asstring + Query1Telefone.Asstring; // Faz a leitura da linha atual e escreve na sequencia na linha
    Writeln(Texto,Linha); // escreve no arquivo e desce uma linha
    Query1.Next //Vai para o proximo registro da Query
  End;

  Closefile(f); //fecha o handle de arquivo
End;
-----------------------------------------------------------------------------------------------
Isso é o que eu costumo usar e sempre deu certo. Se voce quiser pode fazer uma function que preenche os espaços ou zeros a esquerda na hora de preencher a linha, no exemplo acima eu coloquei apenas para exemplo.

Espero ter ajudo.

Flw
Rodrigo


--
Você recebeu esta mensagem porque está inscrito no "DUG-RS -
Delphi Users Group Rio Grande do Sul" em Grupos do Google.
Acesse o nosso BLOG em http://www.dug-rs.org e contribua com a comunidade Delphi do Rio Grande do Sul
Para postar neste grupo, envie um e-mail para dug...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para
dug-rs-un...@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/dug-rs?hl=pt-BR
Twitter: @dugrs

Fernando Souza

unread,
Oct 22, 2010, 7:26:16 AM10/22/10
to dug...@googlegroups.com

Eu tenho alguma coisa pronta que utilizo para isto:

 

function MontaString(pString, pCaracter: String; pTamanho: Integer):String;

var

  sResult: String;

  I: Integer;

begin

  sResult := pString;

  for I := length(pString) to pTamanho - 1 do

  begin

    sResult := sResult + pCaracter;

  end;

  Result := copy(sResult, 1, pTamanho);

end;

 

·         Passo o texto e o caracter de preenchimento e o tamanho da informação que precisa ir no txt, ele vai retornar montada já a string.

 

E esta outra:

 

function maskValor(prValor: Real; piTamanho:Integer; psMAsk:String; pMascara:String):String;

var

  liCont: Integer;

  lsValor, lsResult : String;

begin

  lsValor := FormatFloat(pMascara, prValor);

  for liCont := 1 to piTamanho - (length(lsValor)) do

  begin

    lsResult := lsResult + psMAsk;

  end;

  Result := lsResult + lsValor;

end;

 

 

Para montar a string de valor com adição de zeros ou outro valor que você queria.

 

Qualquer dúvida é só falar.

Secaio

unread,
Oct 22, 2010, 7:42:32 AM10/22/10
to dug...@googlegroups.com
Diego blza?
 
Cara tb faço da forma que o pessoal postou aqui, abaixo tem um exemplo pra ti de uma Unit q criei para uma aplicação, onde exporto as notas fiscais para um layout padrão de um escritorio contábil, tu vai notar que tem varios campos "fixos" pré definidos, pois não usam no sistema, então deixei eles fixos no fonte, tipo cfop, q nessa aplicação especifica é 5949, não ocorrendo outro caso.... mas isso tudo vc pode deixar dinâmico. retornando da consulta neh, conforme tua necessidade.....
 
bom, segue abaixo as rotinas, primeiro a UNIT depois a forma como ela eh invocada..... espero q te ajude!
 
****************************************************************************************************
unit UgeraArqNotas;
interface
uses
 Dialogs, SysUtils, IBQuery , UdataSistema, Classes;
Type
  TgeraArqNota = class(TComponent)
  private
   QryMaster : TIBQuery;
   QryDetail : TIBQuery;
  public
   function GeraArq(path : String; dtini, dtfim : TDateTime):Boolean;
end;
implementation
{ TgeraArqNota }
function TgeraArqNota.GeraArq(path : String; dtini, dtfim: TDateTime): Boolean;
var
  Arq: TextFile;
begin
  AssignFile(Arq,path);
  Rewrite(Arq);
  QryMaster := TIBQuery.Create(self);
  QryDetail := TIBQuery.Create(self);
  QryMaster.Database := DataSistema.IBDatabase;
  QryDetail.Database := DataSistema.IBDatabase;
  QryMaster.SQL.Add('Select N.cod, N.data,case when n.status=''O'' then ''N'' else ''S'' end as STATUS, sum(i.qtd* i.precounit) AS TOTAL');
  QryMaster.SQL.Add('from notafiscal N, itnota I');
  QryMaster.SQL.Add('where n.data between :dtini and :dtfim');
  QryMaster.SQL.Add('AND I.codnota = N.cod');
  QryMaster.SQL.Add('group BY N.cod, N.data, N.status');
  QryMaster.SQL.Add('order by n.cod asc');
  QryMaster.ParamByName('dtini').Value:= dtini;
  QryMaster.ParamByName('dtfim').Value:= dtfim;
  QryDetail.SQL.Add('Select i.codatividade, i.qtd, i.precounit,i.qtd*i.precounit AS precototal');
  QryDetail.SQL.Add('from  itnota I , notafiscal n');
  QryDetail.SQL.Add('where i.codnota = n.cod');
  QryDetail.SQL.Add('and i.codnota = :nota');
  QryDetail.SQL.Add('and n.status = ''O''');
  QryMaster.Open;
  QryMaster.First;
  while not QryMaster.Eof do
    begin
    WriteLn(Arq,'100'+
                'S'  +
                'N'  +
                formatDateTime('dd/mm/yyyy',QryMaster.FieldByName('DATA').AsDateTime)+
                '001'+
                '001'+
                '  '+
                FormatFloat('000000',QryMaster.FieldByName('COD').AsInteger)+
                FormatFloat('000000',QryMaster.FieldByName('COD').AsInteger)+
                formatDateTime('dd/mm/yyyy',QryMaster.FieldByName('DATA').AsDateTime)+
                'C'+
                '     '+
                '00000'+
                '              '+
                '                                                            '+
                'RS'+
                'P'+
                'F'+
                StringReplace(FormatFloat('000000000000.00',QryMaster.FieldByName('TOTAL').AsFloat),',','.',[rfReplaceAll])+
                QryMaster.FieldByName('STATUS').AsString+
                '                    '+
                '                    '+
                '                    '+
                '            '+
                '           '+
                formatDateTime('dd/mm/yyyy',QryMaster.FieldByName('DATA').AsDateTime)+
                '000000000000.00'+
                '000'+
                '          '+
                '                              '+
                '   '+
                '00000'+
                '00000000000000'+
                '          ');
    QryDetail.Close;
    QryDetail.ParamByName('NOTA').Value:=QryMaster.FieldByName('COD').AsInteger;
    QryDetail.Open;
    QryDetail.First;
    while not QryDetail.Eof do
      begin
      WriteLn(Arq,'101'+
                  FormatFloat('000',QryDetail.FieldByName('CODATIVIDADE').AsInteger)+
                  '5949'+
                  StringReplace(FormatFloat('000000000000.00',QryDetail.FieldByName('PRECOTOTAL').AsFloat),',','.',[rfReplaceAll])+
                  '000000000000.00'+
                  '000000000000.00'+
                  '000000000000.00'+
                  '000000000000.00'+
                  '000000000000.00'+
                  'O'+
                  '000'+
                  '000'+
                  '000000000000.00'+
                  '000000000000.00'+
                  '000000000000.00'+
                  '000000000000.00'+
                  '000000000000.00'+
                  StringReplace(FormatFloat('000000000000.00',QryDetail.FieldByName('PRECOTOTAL').AsFloat),',','.',[rfReplaceAll])+
                  StringReplace(FormatFloat('000000000000.00',QryDetail.FieldByName('PRECOTOTAL').AsFloat),',','.',[rfReplaceAll])+
                  '000000000000.00'+
                  '00000'+
                  '000000000000.00'+  //VER COM A TATIANE
                  ' '+
                  '000000'+
                  '000000'+
                  '                                        '+
                  '0000000000'+
                  '000000000000.00'+
                  '000000000000.00');
      QryDetail.Next;
      end;
    QryMaster.Next;
    end;
  QryMaster.FreeOnRelease;
  CloseFile(Arq);
  Result := true;
end;
end.
****************************************************************************************************
chamada da rotina:
 
procedure TfrmParamGeraNotas.BtnExecutaClick(Sender: TObject);
var
  geraArqNota : TgeraArqNota;
begin
  if SaveTextFileDialog1.Execute then
   begin
   geraArqNota := TgeraArqNota.create(Application);
   if geraArqNota.GeraArq(SaveTextFileDialog1.FileName,frmParamGeraNotas.dtInicio.DateTime,frmParamGeraNotas.dtFim.DateTime) then
       Application.MessageBox('Arquivo gerado com sucesso!', 'CFC Legal, MB_OK + MB_OK)
   else
       Application.MessageBox('Atenção, erro ao gerar o arquivo!', 'CFC Legal, MB_OK + MB_ICONEXCLAMATION);       
  geraArqNota.FreeOnRelease;
   end;
end;

 
2010/10/22 Fernando Souza <fern...@ubstecnologia.com.br>



--
Secaio´s Corporation

Diego Feijó

unread,
Oct 22, 2010, 8:31:11 AM10/22/10
to DUG-RS - Delphi Users Group Rio Grande do Sul
Olá Pessoal, obrigado pelos exemplos, realizei alguns testes aqui
porém não ficou bem do jeito que o programa dos caras precisa para
ler. Preciso de uma função que eu possa definir a coluna inicial e o
tamanho do arquivo txt. No exemplo do Fernando consigo definir o
tamanho mas não consigo definir a coluna que deve iniciar no txt.
Segue um exempo.

Coluna Inicio Tamanho

Filler 1 14
Data da Saída 15 8
Número do documento 23 6
Série e subsérie 29 3
Item desdobramento da nota 32 1
Número do item 33 2


Obrigado a todos pelo apóio.


On 22 out, 09:26, "Fernando Souza" <ferna...@ubstecnologia.com.br>
wrote:
> Em 22 de outubro de 2010 08:56, Diego Feijó <dfs...@ig.com.br> escreveu:
>
> Buenas moçada,
>
> Tenho que implementar uma rotina para exportar dados do banco mysql em
> um arquivo texto, porém este arquivo tem um layout definido ex.
> Nome tamanho 50 - inicia na posição 1 vai a 50
> telefone tamnaho 14 - inicia posição 51 vai a 55
> rua tamanho 50 - inicia posição 56 vai a 106
>
> quando o campo não alcança o tamanho ele preenche com brancos ou zeros
> quando número.
> alguém teria alguma dica de como posso começar isto?
> Pode ser com o delphi ou com o próprio select do mysql. Com select
> consegui um progresso da seguinte forma porém não consigo definir o
> ínicio e o fim da coluna.
>
> SELECT
>
> CAST(Datasaidaentrada AS CHAR(70)),
> CAST(Codigo AS CHAR(100))
>
> FROM
>  tbl_notafiscal
>
> Desde já obrigado,
> Diego Feijó.
>
> --
> Você recebeu esta mensagem porque está inscrito no "DUG-RS -
> Delphi Users Group Rio Grande do Sul" em Grupos do Google.
> Acesse o nosso BLOG emhttp://www.dug-rs.orge contribua com a comunidade
> Delphi do Rio Grande do Sul
> Para postar neste grupo, envie um e-mail para dug...@googlegroups.com
> Para cancelar a sua inscrição neste grupo, envie um e-mail para
> dug-rs-un...@googlegroups.com
> Para ver mais opções, visite este grupo emhttp://groups.google.com.br/group/dug-rs?hl=pt-BR
> Twitter: @dugrs
>
> --
> Você recebeu esta mensagem porque está inscrito no "DUG-RS -
> Delphi Users Group Rio Grande do Sul" em Grupos do Google.
> Acesse o nosso BLOG emhttp://www.dug-rs.orge contribua com a comunidade

Diego Feijó

unread,
Oct 22, 2010, 8:38:08 AM10/22/10
to DUG-RS - Delphi Users Group Rio Grande do Sul
Vejam que para importar, quando leio o txt, tem uma função nativa do
delphi onde consigo definir a coluna inicial e a final para realizar a
leitura.

Copy('d:\teste.txt',01,05);

Precisava algo semelhante porém para salvar.

Rodrigo Sebben

unread,
Oct 22, 2010, 8:38:14 AM10/22/10
to dug...@googlegroups.com
Não entendi a sua dúvida... a questão da ordem das colunas no arquivo voce coloca como quiser na concatenação da linha do arquivo texto, o filler vc coloca em primeiro na linha, depois coloca o resto do campos concatenando eles com o espaçamento pedido, e no final o tamanho total da linha deve fechar com o que a empresa pede. Use a função de conversão de tamanho para ajustar os campos e ta feito... tem com explicar melhor onde está o problema????

Rodrigo

Acesse o nosso BLOG em http://www.dug-rs.org e contribua com a comunidade Delphi do Rio Grande do Sul

Para postar neste grupo, envie um e-mail para dug...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para
dug-rs-un...@googlegroups.com

Rodrigo Sebben

unread,
Oct 22, 2010, 8:40:23 AM10/22/10
to dug...@googlegroups.com
Cara, esse comando não le o arquivo, ele apenas copia a string no espaço que vc definiu, tem certeza desse comando?

Rodrigo

--
Você recebeu esta mensagem porque está inscrito no "DUG-RS -
Delphi Users Group Rio Grande do Sul" em Grupos do Google.
Acesse o nosso BLOG em http://www.dug-rs.org e contribua com a comunidade Delphi do Rio Grande do Sul

Para postar neste grupo, envie um e-mail para dug...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para
dug-rs-un...@googlegroups.com

Diego Feijó

unread,
Oct 22, 2010, 8:49:51 AM10/22/10
to DUG-RS - Delphi Users Group Rio Grande do Sul
Olá Rodrigo, copia sim veja esse exemplo.
http://www.ramosdainformatica.com.br/art_recentes01.php?CDA=232

Preciso fazer o seguinte, lá em cima me expressei mal na questão do
tamanho, na verdade não é o tamanho do txt e sim o tamanho máximo da
string.

Preciso de uma função que eu possa definir que vai iniciar na coluna 1
e terminar na coluna 50

Exemplo.

DataSaidaNF Inicia coluna 1 termina coluna 15
Codigo inicia coluna 16 termina coluna 20
HoraSaidaNF inicia coluna 21 e termina coluna 30

e por ai vai

On 22 out, 10:40, Rodrigo Sebben <hyuga...@gmail.com> wrote:
> Cara, esse comando não le o arquivo, ele apenas copia a string no espaço que
> vc definiu, tem certeza desse comando?
>
> Rodrigo
>
> Em 22 de outubro de 2010 10:38, Diego Feijó <dfs...@ig.com.br> escreveu:
>
> > Vejam que para importar, quando leio o txt, tem uma função nativa do
> > delphi onde consigo definir a coluna inicial e a final para realizar a
> > leitura.
>
> > Copy('d:\teste.txt',01,05);
>
> > Precisava algo semelhante porém para salvar.
>
> > --
> > Você recebeu esta mensagem porque está inscrito no "DUG-RS -
> > Delphi Users Group Rio Grande do Sul" em Grupos do Google.
> > Acesse o nosso BLOG emhttp://www.dug-rs.orge contribua com a comunidade

Secaio

unread,
Oct 22, 2010, 9:04:59 AM10/22/10
to dug...@googlegroups.com
brother, não seria o caso de definir uma String com tamanho certo para cada coluna que tu precisa então, por exemplo:
 
DataSaidaNF  String [15]
Codigo String[4]
HoraSaidaNF String[8]
 
daí tu pega o resultset da consulta e atribui para cada variavel, fazendo as conversões necessárias, formatfloat, floattostr, inttostr, etc etc...  assim tu terá os tamanhos certos pra cada coluna que tu precisa para montar teu arquivo texto, com um writeln simples, tipo:
 
      WriteLn(Arq,DataSaidaNF,Codigo ,HoraSaidaNF ); 
 
       assim cada string já terá o tamanho correto do layout do teu arquivo, basta mandar elas para o arquivo....
 
claro q tu vais ter q usar uma função para preencher com espaços as strings que nao ficar com o tamanho maximo.... vai te resolver para as strings maiores do que a tua variavel... nas menores tu vais ter que usar a função preencheEspaçoBRanco, preencheZerosESQ  etc...
 
 
tenho alguma coisa assim aqui tb se tu precisar, mas vi q na primeiro ou segunda resposta desse tópico tem alguma função desse tipo, da uma olhada.... qlqer coisa te mando oke tenho aqui...
 
att
 
 
 

 
2010/10/22 Diego Feijó <dfs.rs@ig.com.br>
Acesse o nosso BLOG em http://www.dug-rs.org e contribua com a comunidade Delphi do Rio Grande do Sul

Para postar neste grupo, envie um e-mail para dug...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para
dug-rs-un...@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/dug-rs?hl=pt-BR
Twitter: @dugrs



--
Secaio´s Corporation

Rodrigo Sebben

unread,
Oct 22, 2010, 9:10:32 AM10/22/10
to dug...@googlegroups.com
Olhei o link, mas reafirmo, no comando do link, ele le uma variável String chamada 'Entrada' e não o arquivo, é só conferir na função que vc vai ver, no exemplo que vc deu, colocou uma string com o caminho do arquivo e o copy serve para copiar o conteúdo de uma string.

A questão do tamanho total da linha do arquivo não precisa de uma função, a questão é que se voce colocar os campos na ordem e com o espaçamento ideal de acordo com o layout do arquivo, sempre vai fechar no tamanho correto, vou te dar um exemplo:

* Layout de um arquivo para teste:
Filler: 1 a 5 (numérico com zeros a esquerda)
Nome: 6 a 25 (alfa com espaços a esquerda)
Endereco: 26 a 45 (alfa com espaços a esquerda)

Tamanho total do arquivo 45 caracteres.

* Exemplo de linha:

00001             RODRIGO               RUA A

* Como ficaria no Delphi:

  Linha := '00001' + '             RODRIGO' + '               RUA A';
  Writeln(Texto, linha);

Note que os campos foram colocados na ordem e já com o espaçamento correto, fechando a linha com o total de 45 caracteres. A questão do espaçamento dos campos voce vai obter usando a função que preenche com espaços ou zeros cada tipo de campo.

Acho que agora não tem erro, tente usar dessa forma que vai dar certo.

Rodrigo



Acesse o nosso BLOG em http://www.dug-rs.org e contribua com a comunidade Delphi do Rio Grande do Sul

fern...@ubstecnologia.com.br

unread,
Oct 22, 2010, 9:23:31 AM10/22/10
to dug...@googlegroups.com
No caso é só concatenar os resultados pois se tu definir o primeiro com
tamanho 14, automaticamente o próximo inicia no 15. No final tu vai ter o
arquivo completo com os campos nas posições corretas.

Tu vai usar as funções para cada informação que precisa colocar na linha
do arquivo.

On Fri, 22 Oct 2010 05:31:11 -0700 (PDT), Diego Feijó <dfs...@ig.com.br>
wrote:

Diego Feijó

unread,
Oct 22, 2010, 9:54:46 AM10/22/10
to DUG-RS - Delphi Users Group Rio Grande do Sul
Showmessage("Problema Resolvido com Sucesso!");

Seguinte consegui implementar o exemplo do Fernando. Agora está OK. Só
tive que colocar espaço em branco no caracter pq senão o programa dá
erro na leitura. É como você falou Fernando colocando a primeira com
tamanho 15 a seguda já inicia na coluna 16 PERFECT.

Obrigado Pessoal pelo apoio, assim que terminar vou disponibilizar
para o grupo o resultado.
Um forte abraço a todos,
Diego Feijó.
> >> Acesse o nosso BLOG emhttp://www.dug-rs.orgecontribua com a comunidade
> >> Delphi do Rio Grande do Sul
> >> Para postar neste grupo, envie um e-mail para dug...@googlegroups.com
> >> Para cancelar a sua inscrição neste grupo, envie um e-mail para
> >> dug-rs-un...@googlegroups.com
> >> Para ver mais opções, visite este grupo
> >> emhttp://groups.google.com.br/group/dug-rs?hl=pt-BR
> >> Twitter: @dugrs
>
> >> --
> >> Você recebeu esta mensagem porque está inscrito no "DUG-RS -
> >> Delphi Users Group Rio Grande do Sul" em Grupos do Google.
> >> Acesse o nosso BLOG emhttp://www.dug-rs.orgecontribua com a comunidade

Rodrigo Sebben

unread,
Oct 22, 2010, 9:57:28 AM10/22/10
to dug...@googlegroups.com
Eo que eu havia dito desde o inicio....estando com o espaçamento correto, não tem erro. Que bom que podemos ajudar.

Acesse o nosso BLOG em http://www.dug-rs.org e contribua com a comunidade Delphi do Rio Grande do Sul

Para postar neste grupo, envie um e-mail para dug...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para
dug-rs-un...@googlegroups.com

Edson Condotta

unread,
Oct 24, 2010, 8:07:29 AM10/24/10
to dug...@googlegroups.com
Eu utilizo o seguinte para gravar um txt para envio de documentos ao banco.

Function TRem_001_Header.Monta() : String;
var
Dia, Mes, Ano, Hr, MM, SS, Ms : Word;
sLinha : String;
begin
DecodeDate(fGeracao_Dt,Ano,Mes,Dia);
DecodeTime(fGeracao_Dt,Hr,MM,SS,Ms);

//--- Header do Arquivo ------
sLinha := PadR('01REMESSA01COBRANCA',26);
sLinha := sLinha + StrZero(fAgencia,4);
sLinha := sLinha + PadL(fDV_Age,1,'0');
sLinha := sLinha + StrZero(fCCorrente,8);
sLinha := sLinha + Padl(fDv_CC,1,'0');
sLinha := sLinha + Padl(fConvenio,6,'0');
sLinha := sLinha + PadR(UpperCase(fNome_Emp),30);
sLinha := sLinha + '001';
sLinha := sLinha + PadR('BANCODOBRASIL',15);
sLinha := sLinha + StrZero(dia,2)+StrZero(Mes,2)+Copy(IntToStr(Ano),3,2);
sLinha := sLinha + StrZero(fNr_Remessa,7);
sLinha := sLinha + PadR('',287,' ');
sLinha := sLinha + '000001';
result := PadR(sLinha,400);
end;

Obs: A fun��o StrZero � uma fun��o criada para preencher com zeros a
esquerda um campo inteiro e retornar uma string. EX: StrZero(12,5) = '00012'


-----Mensagem Original-----
From: Diego Feij�
Sent: Friday, October 22, 2010 10:38 AM
To: DUG-RS - Delphi Users Group Rio Grande do Sul
Subject: Re: RES: [dug-rs] Exportar Para TXT Layout Pr�-Definido

Vejam que para importar, quando leio o txt, tem uma fun��o nativa do


delphi onde consigo definir a coluna inicial e a final para realizar a
leitura.

Copy('d:\teste.txt',01,05);

Precisava algo semelhante por�m para salvar.

--
Voc� recebeu esta mensagem porque est� inscrito no "DUG-RS -


Delphi Users Group Rio Grande do Sul" em Grupos do Google.

Acesse o nosso BLOG em http://www.dug-rs.org e contribua com a comunidade

Delphi do Rio Grande do Sul
Para postar neste grupo, envie um e-mail para dug...@googlegroups.com

Para cancelar a sua inscri��o neste grupo, envie um e-mail para
dug-rs-un...@googlegroups.com
Para ver mais op��es, visite este grupo em
http://groups.google.com.br/group/dug-rs?hl=pt-BR
Twitter: @dugrs

Reply all
Reply to author
Forward
0 new messages