Página 1 de 1
OFF - Arj > nul
Enviado: 09 Abr 2008 10:02
por rossine
Olá pessoal,
Eu usava o arj versão 2.30 de dentro de meu sistema, e funcionava legal, mas eu precisei de um arj mais recente para usar nomes longos ,mas o "> NUL" não adianta mais. Todo processo de compactação aparece na tela :(Neg . Alguém teria um arj que funciona com nomes longos e o "> NUL" ?
Obrigado desde já,
Rossine.
Enviado: 09 Abr 2008 15:18
por Maurício Elias
Olá.
Tenho o mesmo problema. O q faço é salvar e limpar a tela antes, depois de concluido, restauro. Até q o efeito ñ fica feio.
Abraços.
Maurício
Enviado: 11 Abr 2008 05:21
por Maligno
Eu uso o WZZip e essa sujeirada toda aparece, mas o usuário nem liga. Não dá pra interagir com o programa mostrando, por exemplo, uma barra de progresso. Nem é tão feio. Mas como é um processo meio demorado e não gosto de deixar a tela parada, até prefiro deixar assim.
Enviado: 11 Abr 2008 10:27
por rossine
OK obrigado aos dois :)Pos
Abraços,
Rossine.
Enviado: 11 Abr 2008 11:40
por Augusto
Rossine,
Esse problema não é do ARJ ou do WZZIP mas sim do XP...
Eu resolvi o problema de aparecer na tela o processo de (des)compactação assim:
Código: Selecionar todos
SWPRUNCMD("wzzip -ex dest orig > lixo.txt")
FERASE("lixo.txt")
Enviado: 11 Abr 2008 16:19
por Maligno
Ainda prefiro mostrar os arquivos sendo ZIPados. Se o processo é demorado, fica melhor do que deixar a tela parada. O usuário pode pensar que deu pau.

Enviado: 11 Abr 2008 16:30
por Augusto
Maligno...
Concordo, porém, eu coloco um "Aguarde... fazendo BKP" e trato qualquer erro que venha ocorrer...
EM TEMPO: Eu não coloquei o código todo no post, somente o necessário.
Enviado: 11 Abr 2008 16:43
por Maligno
Ah, sim. Imaginei que você avisaria o usuário de que há um processo em andamento. Mas ainda assim, a tela fica parada e o usuário não tem a menor idéia do que está acontecendo e, por vezes, nem SE está acontecendo.

Enviado: 11 Abr 2008 18:16
por sygecom
Olá a todos,
Pode ser falcilmente compilado um sisteminha para compactação e descompactção usando xharbour + hbzlib e com progresso e chamar no clipper com RUN. No link abaixo tem um exemplo que pode ser facilmente adptado para modo console.
https://pctoledo.org/forum/viewtopic.php?t=6757
Enviado: 11 Abr 2008 19:12
por Maligno
Pensei que a idéia era se manter no Clipper. De qualquer forma, é uma idéia. Mas se fosse ter que utilizar um programa Windows, eu preferiria manter o WZZip, que é excelente, fazendo apenas um front end em uma linguagem Windows, que por sua vez, executaria o WZZip num processo controlado, direcionando sua saída.
Detalhe: o WZZip é um utilitário de linha de comando que invoca as funções do WinZIP, que naturalmente, são bem melhores que as funções de compactação do XHarbour. Daí a escolha em mantê-lo.
Mas, como backup de cliente é coisa que se faz no máximo, uma vez por dia, omitir a saída ou mesmo mostrar a saída toda são alternativas válidas e mais que suficientes para a maior parte dos casos.
Enviado: 12 Abr 2008 09:30
por rossine
Olá Augusto,
Código: Selecionar todos
SWPRUNCMD("arj a -y -r dest arquivos\*.* > lixo.txt")
FERASE("lixo.txt")
Fiz assim e tambem não adiantou, continua aparecendo na tela. O que eu percebi é que se eu vou ao MS-DOS e digito:
arj a -y -r dest arquivos\*.* > lixo.txt
ou
arj a -y -r dest arquivos\*.* > nul
funciona certo, ou seja, nada é mostrado na tela.
Obrigado,
Rossine.
Enviado: 12 Abr 2008 09:53
por rossine
Olá,
Segue abaixo um exemplo de como eu consegui resolver isto:
Código: Selecionar todos
*************
function MAIN
*************
? EX_COMANDO( "arj a -y -r backup dados\*.* > nul" )
EX_COMANDO( "echo." )
EX_COMANDO( "echo." )
EX_COMANDO( "echo." )
EX_COMANDO( "pause" )
EX_COMANDO( "echo." )
EX_COMANDO( "dir x*.* /p" )
return NIL
*******************
function EX_COMANDO( cExt )
*******************
local cCOMANDO := strtran( upper(gete( "COMSPEC" )), "COMMAND.COM", "CMD.EXE" )
local cCmd
if !file( cCOMANDO )
cCOMANDO = gete( "COMSPEC" )
endif
cCmd := alltrim(cCOMANDO)
cCOMANDO += " /c " + cExt
cCOMANDO := alltrim(cCOMANDO)
memowrit( "xtemp.bat", "@echo off" + chr(13) + chr(10) + cCOMANDO + chr(13) + chr(10) )
lRet := swpruncmd( ccmd + " /c xtemp.bat", 0, "", "" )
ferase( "xtemp.bat" )
return lRet
Abraços,
Rossine.
Enviado: 12 Abr 2008 10:04
por Pablo César
Só uma ressalva: no Windows Vista não é possível utilizar o ">" para arquivo ou ao menos eu não soube como fazer.