Array
(
)

Gerar arquivo de texto!!!!!!

Fábio Galvão
   - 03 jan 2006

preciso gerar um arquivo de texto com aseguinte estrutura:


CCCCCC CODIGO DO ITEM (6 BYTES)
PPPPPP PREÇO (6 BYTES)


montei a seguinte rotina :
--------------------------------------------------------------------------------
var arq: TextFile;
linha: String;
begin

qry_log.Close;
qry_log.SQL.Clear;
qry_log.SQL.Add(´select * from cad_log_prod ´);
qry_log.SQL.Add(´where unid_cod=´´+unidcod+´´ and prod_balanca=´S´ order by prod_cod´);
qry_log.Open;


AssignFile ( arq, ´c:\Dmb\PRECOMGV.TXT´ );
Rewrite ( arq );
qry_log.First;
while not qry_log.Eof do
begin
WriteLn ( arq, qry_log.FieldByName(´prod_cod´).asstring );
WriteLn ( arq, FormatFloat ( ´0000.00´, qry_log.FieldByName ( ´prod_precvenda´ ).AsFloat ) );
WriteLn ( arq );
qry_log.Next;
end;
CloseFile ( arq );

o resultado do arquivo gerardo é o seguinte:

Eixox
   - 03 jan 2006

AssignFile ( arq, ´c:\Dmb\PRECOMGV.TXT´ );
Rewrite ( arq );
qry_log.First;
while not qry_log.Eof do
begin
WriteLn ( arq, qry_log.FieldByName(´prod_cod´).asstring );

Substitua por

WriteLn ( arq, FormatCurr(´000000´,qry_log.FieldByName(´prod_cod´).value);

Não se preocupe se o valor é inteiro, vai fazer isso sem problemas.


WriteLn ( arq, FormatFloat ( ´0000.00´, qry_log.FieldByName ( ´prod_precvenda´ ).AsFloat ) );

WriteLn ( arq );
Remova essa linha aqui - é ela que acrescenta as linhas em branco que você não quer.

qry_log.Next;
end;
CloseFile ( arq );

Falou Carinha?...


Eixox
   - 03 jan 2006

na linha onde tem o formatcurr eu esqueçi de colocar um parênteses no final
WriteLn ( arq, FormatCurr(´000000´,qry_log.FieldByName(´prod_cod´).value));


Marcio.theis
   - 03 jan 2006

Vc deve de remover o segundo writeln, pois senão irá para uma nova linha, deixe;

#Código

WriteLn(arq, ´VALOR´);
Write(arq, ´VALOR´);