Trabalhando com arquivos

 

Existem diversas maneiras de trabalhar com arquivos utilizando Progress 4GL, abaixo vou explicar as mais utilizadas.

 

A mais comum de ser encontrada é o método de definir uma stream, definir o arquivo de saída e depois utilizar o comando PUT para gerar os dados.

Veja exemplo:

 

DEF STREAM clientes.

OUTPUT STREAM clientes TO VALUE('C:\lista-clientes.txt').

 

FOR EACH emitente NO-LOCK:

 

    PUT STREAM clientes emitente.nome-emit emitente.cgc SKIP.

 

END.

 

OUTPUT STREAM clientes CLOSE.

 

Na segunda maneira, como vocês podem perceber não há a necessidade de definição da stream tornando a solução mais simples, a diferença é que nesse caso qualquer display ou comando de I/O vai ser gerado no arquivo definido.

 

OUTPUT TO c:\clientes.txt.

 

FOR EACH emitente NO-LOCK:

 

    DISP emitente.nome-emit emitente.cgc SKIP.

 

END.

 

OUTPUT CLOSE.

 

A vantagem dessa situação acima é que podemos jogar a informação não só pra arquivo, mas pra variadas saídas como nos exemplos abaixo.

 

OUTPUT TO PRINTER.

DISPLAY "Jogar para a impressora padrão".

OUTPUT CLOSE.

 

OUTPUT TO LPT1.

DISPLAY "Jogar na porta LPT1".

OUTPUT CLOSE.

 

Agora a ultima opção e na minha opinião a mais útil:

Nessa opção é gerado um arquivo CSV que pode ser manipulado no Excel, caso você precise gerar arquivos no Excel veja mais detalhes em nosso outro artigo.

 

OUTPUT TO c:\clientes.csv.

 

FOR EACH emitente NO-LOCK:

 

    EXPORT DELIMITER ";" emitente.nome-emit emitente.cgc SKIP.

 

END.

 

OUTPUT CLOSE.

 

Mais detalhes visite nosso Blog: http://progressetecnologia.blogspot.com/