Histórico da Página
...
Variável | Tipo do parâmetro | Tipo do dado | Descrição | |||||
---|---|---|---|---|---|---|---|---|
zipFileName | INPUT | CHARACTER | Endereço completo do arquivo .ZIP a ser gerado. Exemplo: c:\tmp\teste.zip | |||||
tt-listFiles cFile lSearch | INPUT | TEMP-TABLE CHARACTER X(200) LOGICAL
| Tabela temporária que irá armazenar as informações referentes a cada um dos arquivos que deve ser inserido no arquivo .ZIP gerado cFile: indica o nome do arquivo que deve ser inserido no ZIP gerado. lSearch: indica se o arquivo informado foi encontrado pelo utilitário. Valor padrão é false. | |||||
password | INPUT | CHARACTER | Senha de acesso aos arquivos do .ZIP gerado. Este parâmetro é utilizado apenas na procedure interna zipFilesEncryp. | |||||
lsobrescreve | INPUT | LOGICAL | Indica se o utilitário deve sobrescrever o arquivo ZIP caso ele já exista. | |||||
tt-erros Cod-Erro Desc-Erro | OUTPUT | TEMP-TABLE INTEGER CHARACTER | Tabela temporária que irá armazenar os dados referentes aos erros encontrados na manipulação dos dados das tabelas de entrada. Cod-Erro: número do erro. Seqüencial dentro da temp-table. Desc-Erro: descrição do erro.
|
Exemplo Padrão:
Bloco de código | ||
---|---|---|
| ||
{utp/ut-zip.i} define variable h-zip as handle no-undo. run utp/ut-zip.p persistent set h-zip. create tt-listfiles. assign tt-listfiles.cfile = "c:\temp\teste01.txt". create tt-listfiles. assign tt-listfiles.cfile = "c:\temp\teste02.txt". run zipfiles in h-zip (input "c:\temp\teste01.zip", input table tt-listfiles, input true, output table tt-erros). for each tt-erros: disp tt-erros. end. run zipfilesencrypt in h-zip (input "c:\temp\teste02.zip", input table tt-listfiles, input "senha", input false, output table tt-erros). for each tt-erros: disp tt-erros. end. delete procedure h-zip. |
Exemplo 2adaptado para grande volume de arquivos:
Bloco de código | ||
---|---|---|
| ||
{utp/ut-zip.i}
def temp-table ttlista2 like tt-listfiles.
define variable arquivo as character no-undo.
define variable h-zip as handle no-undo.
run utp/ut-zip.p persistent set h-zip.
input from os-dir("c:\temp\ziptest").
repeat:
import arquivo.
if arquivo begins '.' then
next.
create ttlista2.
assign ttlista2.cfile = "c:\temp\ziptest\" + arquivo.
end.
input close.
for each tt-listfiles where tt-listfiles.cfile = '':
delete tt-listfiles.
end.
pause 0 before-hide.
for each ttlista2:
disp
ttlista2.cfile label 'arquivo' format 'x(50)'
with
side-label
frame flabel
size 70 by 3
view-as dialog-box.
process events.
create tt-listfiles.
buffer-copy ttlista2 to tt-listfiles.
run zipfiles in h-zip (input "c:\temp\teste02.zip",
input table tt-listfiles,
input true,
output table tt-erros).
delete tt-listfiles.
end.
for each tt-erros:
disp tt-erros.
end.
for each tt-erros:
disp tt-erros.
end.
delete procedure h-zip. |
04. Informações Adicionais:
Caso ocorram erros relacionados com a passagem de grande número de arquivos a serem compactados no mesmo zip, conforme exemplos abaixo, recomenda-se passar um arquivo por vez para o mesmo arquivo zip. Utilizando este formato é possível realizar a compactação de dois mil arquivos no mesmo zip.
- Ocorrência de erro progress 11678 “REPLACE/CONCAT may not result in data > bytes. (11678)” quando esta temp-table recebe muitos arquivos.
- Limitação do sistema operacional com tamanho de instrução que limita em 8191 caracters a linha de comando no Windows XP ou mais recente.