TECH SOLUTIONS PARTICIPA DO CONBRAI 2016 EM SÃO PAULO

Qua 21 Set - 14:35 por Miro



Comentários: 0


Juntando vários arquivos em um único

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Juntando vários arquivos em um único

Mensagem  Miro em Ter 26 Jun - 12:56

[Você precisa estar registrado e conectado para ver esta imagem.]

Este SCript é útil para casos em que temos arquivos que precisam ser juntados em um único arquivo, ex: Sintegra Mensal juntando no movimento do Ano; Arquivos (diários, semanais, mensais) acumulados em um único arquivo.

São dois Scripts que trabalham em conjunto

1. S000_GeraArquivos: Recolhe os dados da pasta onde estão os arquivos e qual o nome e a pasta de gravação do arquivo final.

2. S100_Processa: Processa arquivo por arquivo juntando todos no arquivo de saída indicado.


S000_GeraArquivos

SET SAFETY OFF
CLOSE
DELETE LOG OK

PAUSE "Digite o caminho Windows completo para a leitura dos arquivos mensais do Sintegra."

DIALOG (DIALOG TITLE "Caixa de diálogo do usuário" WIDTH 805 HEIGHT 349 ) (BUTTONSET TITLE "&OK;&Cancelar" AT 660 60 DEFAULT 1 ) (TEXT TITLE "CAMINHO LEITURA" AT 36 28 ) (TEXT TITLE "CAMINHO GRAVAÇÃO" AT 36 112 ) (EDIT TO "VLeitura" AT 36 60 WIDTH 582 ) (EDIT TO "VGravacao" AT 36 132 WIDTH 437 ) (TEXT TITLE "Nome do Arquivo Sintegra Anual de Saída" AT 36 172 ) (EDIT TO "VArquivoSaida" AT 36 192 WIDTH 208 )

DELETE FORMAT ListaArquivos OK
DELETE "ListaArquivos.FIL" OK
DELETE FORMAT "%VGravacao%%VArquivoSaida%" OK
DELETE "%VGravacao%%VArquivoSaida%.FIL" OK

DIR "%VLEITURA%*.*" TO "ListaArquivos"

OPEN "ListaArquivos"

COUNT
VTotal = COUNT1

VContador = 0

DO S100_Processa WHILE VContador < VTotal

CLOSE

DELETE FORMAT ListaArquivos OK
DELETE "ListaArquivos.FIL" OK

SET SAFETY ON

S100_Processa

OPEN "ListaArquivos"
VArquivo = ALLTRIM(RECOFFSET(FILE_NAME;VContador))

OPEN "%VArquivo%" FORMAT ArquivoBase

EXTRACT RECORD TO "%VGravacao%%VArquivoSaida%" APPEND

VContador = VContador 1

COMENTÁRIOS:

S000_GeraArquivos

DIALOG (DIALOG TITLE "Caixa de diálogo do usuário" WIDTH 805 HEIGHT 349 ) (BUTTONSET TITLE "&OK;&Cancelar" AT 660 60 DEFAULT 1 ) (TEXT TITLE "CAMINHO LEITURA" AT 36 28 ) (TEXT TITLE "CAMINHO GRAVAÇÃO" AT 36 112 ) (EDIT TO "VLeitura" AT 36 60 WIDTH 582 ) (EDIT TO "VGravacao" AT 36 132 WIDTH 437 ) (TEXT TITLE "Nome do Arquivo Sintegra Anual de Saída" AT 36 172 ) (EDIT TO "VArquivoSaida" AT 36 192 WIDTH 208 )

Monta uma tela para o usuário informar: Pasta Windows onde estão os arquivos, Local de gravação e nome do arquivo de saída.

DIR "%VLEITURA%*.*" TO "ListaArquivos"
Com a função DIR o Script lê os arquivos na pasta indicada e grava na tabela ListaArquivos

COUNT
VTotal = COUNT1
Conta quantos registros tem na tabela ListaArquivos

DO S100_Processa WHILE VContador < VTotal
Monta um LOOP de execução do SCript S100_Processa, que será executado para cada um dos arquivos gravados na table ListaArquivos


S100_Processa

VArquivo = ALLTRIM(RECOFFSET(FILE_NAME;VContador))
Recolhe o nome do arquivo
RECOFFSET mais a váriavel VContador le a linha da ListaArquivos
FILE_NAME é o campo da tabela que contém o nome do arquivo

OPEN "%VArquivo%" FORMAT ArquivoBase
EXTRACT RECORD TO "%VGravacao%%VArquivoSaida%" APPEND
Abre arquivo usando a tabela ArquivoBase
Extraí o arquivo para a tabela ArquivoBase com a opção APPEND (juntando os arquivos)

VContador = VContador 1
Soma 1 no contador para passar para a próxima linha da Tabela ListaArquivos (próximo arquivo)

Miro

Mensagens : 119
Data de inscrição : 24/02/2012

http://www.it-tech.com.br

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum