O vei, este exemplo abaixo é meio que antigo, mas dá pra voce se basear
nele. Ao invés de pegar de uma String (vide as chamadas do copy), basta você
por os dados das tabelas via fieldbyname.



Procedure TForm_Nota.CreateTxtData;
var
  VFile: TextFile;
  VItemString, VHandleString1, VHandleString2, VHandleTotalString,
VFileExport,  VBackupName,VPrepareStringToPrinter, VNumLabel: string;
  i: integer;
  VQuant, ValUnit: Extended;
  VStr: array[1..37] of string;
label
  FileReadAbort;
begin
  //
  FItemString1 := '';
  FItemString2 := '';
  FPDFString1 := '';
  FPDFString2 := '';
  //
  VFileExport :=
format('%s\%s.%s',[GConfig.RDirectoryImport,AlignEdit25.Text,GConfig.RExtens
ionImport]);
  //
  AssignFile(VFile,VFileExport);
  if FileExists(VFileExport) then
  begin
    if Application.MessageBox('Esta nota já foi exportada. Voce deseja
substituí-la?',CCAPTIONAPPLICATIONTITLE,mb_YesNo+mb_IconQuestion+mb_DefButto
n1+mb_applmodal) = IDNO then
      Goto FileReadAbort;
  end;
  //
  Rewrite(VFile);
  //
  VStr[1] := InsertChar(AlignEdit25.Text,'0',10);          // Numero da Nota
fiscal   pos: 1-10
  VStr[2] := InsertChar(AlignEdit11.Text,'0',10);          // Número do
Pedido        pos: 11-20
  VStr[3] := InsertChar(AlignEdit29.Text,'0',2);           // Série da Nota
pos: 21-22
{$IFDEF ENCODER}
  VStr[4] := copy(FString,26,8);               // Data de emissão
pos: 9-16
  VStr[5] := copy(FString,34,8);               // Data de vencimento
pos: 17-24
  VStr[6] := copy(FString,42,8);               // Data de saída
pos: 25-32
  VStr[7] := copy(FString,50,2);               // Numero de ítens inseridos
na nota    pos: 42-44
  VStr[8] := copy(FString,52,5);               // CFOP da nota
pos: 45-48
  VStr[9] := Copy(FString,57,1);               // Tipo de nota
pos: 49-50
  //
  VStr[10] := copy(FString,58,6);               // Hora da saída
pos: 51-56
  VStr[11] := copy(FString,64,14);              // CGC do Fornecedor
pos: 57-70
  VStr[12] := copy(FString,78,14);              // CGC do Cliente
pos: 57-70
  VStr[13] := InsertCharInPos(copy(FString,92,11),',',10);   // Valor total
dos produtos             pos: 85-101
  VStr[14] := InsertCharInPos(copy(FString,104,11),',',10);  // Valor total
da nota                  pos: 102-119
  VStr[15] := InsertCharInPos(copy(FString,115,11),',',10);  // Outras
despesas Acessorias           pos: 120-136
  VStr[16] := InsertCharInPos(copy(FString,126,11),',',10);  // Valor do
seguro                      pos: 137-153
  VStr[17] := InsertCharInPos(copy(FString,137,11),',',10);  // Valor do
frete                       pos: 154-170
  VStr[18] := AnsiUpperCase(copy(FString,148,15));           //
Transportadora                       pos: 171-185
  VStr[19] := AnsiUpperCase(copy(FString,164,7));            // Placa do
veículo                     pos: 208-214
  VStr[20] := AnsiUpperCase(copy(FString,171,15));           // Motorista
pos: 215-224
  VStr[21] := copy(FString,186,5);                           // Quantidade
de volumes                pos: 225-230
  VStr[22] := AnsiUpperCase(copy(FString,191,15));           // Espécie de
volume                    pos: 215-224
  VStr[23] := InsertCharInPos(copy(FString,206,7),',',6);    // Peso Bruto
pos: 225-231
  VStr[24] := InsertCharInPos(copy(FString,214,7),',',6);    // Peso Líquido
pos: 232-238
  VStr[25] := copy(FString,220,1);                           //
Responsabilidade do frete
{$ELSE}
  VStr[4] := copy(FString,25,8);               // Data de emissão
pos: 9-16
  VStr[5] := copy(FString,33,8);               // Data de vencimento
pos: 17-24
  VStr[6] := copy(FString,41,8);               // Data de saída
pos: 25-32
  VStr[7] := copy(FString,49,2);               // Numero de ítens inseridos
na nota    pos: 42-44
  VStr[8] := copy(FString,51,5);               // CFOP da nota
pos: 45-48
  VStr[9] := Copy(FString,56,1);               // Tipo de nota
pos: 49-50
  //
  VStr[10] := copy(FString,57,6);               // Hora da saída
pos: 51-56
  VStr[11] := copy(FString,63,14);               // CGC do Fornecedor
pos: 57-70
  VStr[12] := copy(FString,77,14);               // CGC do Cliente
pos: 57-70
  VStr[13] := InsertCharInPos(copy(FString,91,11),',',10);   // Valor total
dos produtos             pos: 85-101
  VStr[14] := InsertCharInPos(copy(FString,102,11),',',10);  // Valor total
da nota                  pos: 102-119
  VStr[15] := InsertCharInPos(copy(FString,113,11),',',10);  // Outras
despesas Acessorias           pos: 120-136
  VStr[16] := InsertCharInPos(copy(FString,124,11),',',10);  // Valor do
seguro                      pos: 137-153
  VStr[17] := InsertCharInPos(copy(FString,135,11),',',10);  // Valor do
frete                       pos: 154-170
  VStr[18] := AnsiUpperCase(copy(FString,146,15));                     //
Transportadora                       pos: 171-185
  VStr[19] := AnsiUpperCase(copy(FString,161,7));                      //
Placa do veículo                     pos: 208-214
  VStr[20] := AnsiUpperCase(copy(FString,168,15));                     //
Motorista                            pos: 215-224
  VStr[21] := copy(FString,178,5);                      // Quantidade de
volumes                pos: 225-230
  VStr[22] := AnsiUpperCase(copy(FString,183,15));                     //
Espécie de volume                    pos: 215-224
  VStr[23] := InsertCharInPos(copy(FString,198,8),',',5);   // Peso Bruto
pos: 225-231
  VStr[24] := InsertCharInPos(copy(FString,206,8),',',5);   // Peso Líquido
pos: 232-238
  VStr[25] := copy(FString,214,1);                          //
Responsabilidade do frete
{$ENDIF}
  //
  VHandleString1 :=
format('%s%s%s%s%s%s%s%s%s%s%s%s%s',[VStr[1],VStr[2],VStr[3],VStr[4],VStr[5]
,VStr[6],VStr[7],VStr[8],VStr[9],VStr[10],VStr[11],VStr[12],VStr[13]]);
  VHandleString2 :=
format('%s%s%s%s%s%s%s%s%s%s%s%s',[VStr[14],VStr[15],VStr[16],VStr[17],VStr[
18],VStr[19],VStr[20],VStr[21],VStr[22],VStr[23],VStr[24],VStr[25]]);
  //
  VHandleTotalString := format('%s%s',[VHandleString1,VHandleString2]);
  //
  Writeln(VFile,VHandleTotalString);
  //
  for i := 1 to FInsertItens do
  begin
    //
    ValUnit := Arredonda(StrToFloat(AlignStringGrid1.Cells[9,i]));
    VQuant :=  Arredonda(StrToFloat(AlignStringGrid1.Cells[1,i]));
    //
    VStr[26] := StrZero(AlignStringGrid1.Cells[0,i],2);     // Sequência do
Item      pos: 3-15
    VStr[27] := StrZero(AlignStringGrid1.Cells[2,i],10);    // Código do
Item
    VStr[28] := StrZero(InsertMaskQuant(FloatToStr(VQuant),2),11);     //
Quantidade             pos: 23-24
    VStr[29] := AlignStringGrid1.Cells[8,i];                  // Unidade de
Medida      pos: 25-28
    VStr[30] := StrZero(AlignStringGrid1.Cells[7,i],5);       // IPI
pos: 29-32
    VStr[31] := StrZero(AlignStringGrid1.Cells[5,i],5);       // ICMS
pos: 33-36
    VStr[32] := StrZero(AlignStringGrid1.Cells[6,i],5);       // ICMS SUBST
pos: 37-41
    VStr[33] := AlignStringGrid1.Cells[3,i];                  // Cod. Sit.
Tributária   pos:
    VStr[34] := RemoveChar(AlignStringGrid1.Cells[4,i],'.');  //
Classificação fiscal
    VStr[35] := StrZero(FloatToStr(ValUnit),12);              // Valor
Unitário
    VStr[36] := StrZero(AlignStringGrid1.Cells[11,i],12);     // Valor do
IPI
    VStr[37] := StrZero(AlignStringGrid1.Cells[12,i],12);     // Valor do
ICMS
    //
    VItemString :=
format('%s%s%s%s%s%s%s%s%s%s%s%s',[VStr[26],VStr[27],VStr[28],VStr[29],VStr[
30],VStr[31],VStr[32],VStr[33],VStr[34],VStr[35],VStr[36],VStr[37]]);
    Writeln(VFile,VItemString);
   //
  end;
  //
  Application.MessageBox('Arquivo gerado com
sucesso!',CCAPTIONAPPLICATIONTITLE,mb_Ok + mb_IconInformation+ mb_DefButton1
+ mb_applmodal);
  FileReadAbort:
  CloseFile(VFile);
  FString := '';
  FReaderOk := False;
  ClearData;
  //
end;


[]s

Walter Alves Chagas Junior
Projeto e desenvolvimento de sistemas
Telemont Engenharia de telecomunicações
Belo Horizonte - MG - Brazil
[EMAIL PROTECTED]
Fone: (31) 3389-8215 Fax: (31) 3389-8200


-----Mensagem original-----
De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
nome de Cadanos
Enviada em: quarta-feira, 29 de março de 2006 14:13
Para: grupo2
Assunto: [delphi-br] Exportar arquivo TXT





Bom Dia Pessoal

Preciso de uma juda, sei que uma das coisas basicas e trabalhar com arquivo
txt, mas não domino muito isso, minha duvida.

Preciso gerar um arquivo txt lendo algumas tabelas, o que é mais facil
exportar a query direto ou mostrar em um dbgrid e exporta-lo, ou criar uma
outra tabela com o resultado e depois exporta-lo.

Como posso fazer para que a depois de cada campo da query seja gerado no txt
o separador ( ; )?

Cadanos

[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>


 
Links do Yahoo! Grupos




 




[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a