Exportar para TXT.
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?
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
Curtidas 0
Respostas
Alex Maia
02/06/2004
Qual banco de dados vc usa?
GOSTEI 0
Paulo_amorim
02/06/2004
Olá
Para os campos Inteiros, pode-se utilizar
-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
- sendo s sua variável a ser tratada, e MeuTamanho o tamanho do campo
Depois disso, grave no arquvio...
Espero que ajude
Até+
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é+
GOSTEI 0
Iurifernandes
02/06/2004
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!
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!
GOSTEI 0
Rmc1701e
02/06/2004
Você pode usar um listbox junto com a função [b:b54479bd08]format[/b:b54479bd08] para gerar o arquivo.
Depois o método Items.SavetoFile para salva-lo em disco
Se você não quiser inserir um componente ListBox no formulário, uma variável do tipo TStringList também funciona.
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.
GOSTEI 0