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.