Fórum Exportar para TXT. #235648

02/06/2004

0

Preciso gerar um txt com os registros de uma tabela, de modo que no arquivo texto os campos sejam gravados sempre na mesma posição, independente do tamanho.

Por exemplo: o campo cod_cli tem tamanho de 5 e o campo nom_cli tem tamanho 40. Preciso que o cod_cli ocupe a posição 001 a 009 e nom_cli a posição 010 a 059 no txt.

Alguém pode me ajudar?


Julianomc

Julianomc

Responder

Posts

02/06/2004

Alex Maia

Qual banco de dados vc usa?


Responder

Gostei + 0

02/06/2004

Paulo_amorim

Olá

Para os campos Inteiros, pode-se utilizar
FormatFloat (´0000000000´, Query.FieldByName(´campo´).AsInteger);

-sendo a quantidade de ´0´ o tamanho do campo, e o FieldByName qual o campo a ser tratado

Para os Campos String, pode-se fazer
s := Query.FieldByName(´campo´).AsString;
while not Length(s) = MeuTamanho do
s := s + ´ ´;

- sendo s sua variável a ser tratada, e MeuTamanho o tamanho do campo

Depois disso, grave no arquvio...

Espero que ajude
Até+


Responder

Gostei + 0

02/06/2004

Iurifernandes

rapá, eu to usando o seguinte código:

begin
//PEDIDO
inicial:= DateToStr(eInicial.Date);
final := DateToStr(eFinal.Date);
AssignFile (F, Arquivo_Ped );
Rewrite(f);
Query1.Close;
Query1.ParamByName(´inicial´).AsDateTime:= StrToDate(inicial);
Query1.ParamByName(´final´).AsDateTime:= StrToDate(final);
Query1.Open;
if not Query1.Eof then
begin
Query1.first;
while not query1.Eof do
begin
Writeln (F,Query1COD_PED.asstring);//+´,´);
Writeln (F,Query1PDCOD_REP.asstring);//+´,´);+´,´);
Writeln (F,query1PDCOD_VEND.asstring);//+´,´);+´,´);
Writeln (F,Query1PDCOD_CLI.asstring);//+´,´);+´,´);
Writeln (F,Query1PDCOD_TRP1.asstring);//+´,´);+´,´);
Writeln (F,Query1PDCOD_TRP2.asstring);//+´,´);+´,´);
Writeln (F,Query1PDCOD_TRP3.asstring);//+´,´);+´,´);
Writeln (F,Query1DTEMISS_PED.asstring);//+´,´);+´,´);
Writeln (F,Query1DTFATURA_PED.asstring);//+´,´);+´,´);
Writeln (F,Query1ENDCOB_PED.asstring);//+´,´);+´,´);
Writeln (F,Query1ORDCOM_PED.asstring);//+´,´);+´,´);
Writeln (F,Query1SUFRAMA_PED.asstring);//+´,´);+´,´);
Writeln (F,Query1CONPGT_PED.asstring);//+´,´);+´,´);
Writeln (F,Query1INFO_PED.asstring);//+´,´);+´,´);
Writeln (F,Query1FRETE_PED.asstring);//+´,´);+´,´);
Writeln (F,Query1OBS_PED.asstring);//+´,´);+´,´);
Writeln (F,Query1VLTOT_PED.asstring);//+´,´);+´,´);
Writeln (F,Query1QTDITM_PED.asstring);//+´,´);+´,´);
Writeln (F,Query1PESO_PED.asstring);//+´,´);+´,´);
Writeln (F,Query1NF_PED.asstring);//+´,´);+´,´);
Writeln (F,Query1COMTOT_PED.asstring);//+´,´);+´,´);
Writeln (F,Query1COMVEND_PED.asstring);//+´,´);+´,´);
Writeln (F,Query1BAIXA_PED.asstring);//+´,´);+´,´);
Writeln (F,Query1STATUS_PED.asstring);//+´,´);+´,´);
Writeln (F,Query1DTSTATUS_PED.asstring);//+´,´);+´,´);
writeln (F, ´***´);
query1.Next;
end;
CloseFile(F);
end;


espero que ajude!


Responder

Gostei + 0

02/06/2004

Rmc1701e

Você pode usar um listbox junto com a função [b:b54479bd08]format[/b:b54479bd08] para gerar o arquivo.
listbox1.Items.Add(format(´¬5.5d¬-40.40s¬13.2f´,
                           [fieldbyname(´Codigo´).AsInteger,
                            fieldbyname(´VrProd´).AsString,
                            fieldbyname(´Nome´).AsFloat
                           ]))

Depois o método Items.SavetoFile para salva-lo em disco
listbox1.Items.SaveToFile(´C:\Temp\Arquivo.txt´)


Se você não quiser inserir um componente ListBox no formulário, uma variável do tipo TStringList também funciona.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar