Backup com Arj e Clipper

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Pablo César escreveu:Mas até parece que mostrar um outro exemplo venha a ser um crime...
Calma! Ninguém disse isso. É melhor dar um exemplo fora do requisito do colega, como você fez, do que dar exemplo nenhum. Eu só comentei que seu exemplo está fora do requisitado. Mas alguém certamente o aproveitará. Portanto, já podemos considerar a thread beneficente.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Pablo César escreveu:Total não compactado: 116.356 bytes
Compactado pelo RBCK_C52.LIB: 52.362 bytes
Compactado pelo ARJ v2.50a: 27.421 bytes
Obrigado. Você me poupou o trabalho de testar. E foi como eu desconfiava. Mais ou menos como o ZIP da PKware: pouco eficiente. Vou continuar com o PKZIP. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Maligno escreveu:Eu só comentei que seu exemplo está fora do requisitado.
Eu ainda não considero que o meu exemplo esteja fora do requisitado. Ora porque no meu exemplo, é o proprio Clipper que solicita a troca de disquetes, aguarda confirmação, verifica se o disquete tem arquivos nele, com opção de formatar, aguardar e liberar o disquete para gravação (tudo em Clipper).

É impressionante ver que mesmo o colega miracle ainda não tenha se manifestado declarando que interessaria ou não este exemplo dado, e vocês dois (Eolo/Maligno) afirmarem que não é isso que o colega precisa. Acho que se o problema estava em ler, pedir disquetes e dizer que o backup estava concluído... eu cumprí então.

Também entendo que se houvesse uma biblioteca que pudesse atender o propósito de compactar (e compactar mais eficientemente) seria o ideal (assim como o colega Leonardo nos passou), ora porque o grande problema é mostrar a execução em tela dos arquivos que estão sendo compactados e limpar completamente a tela, não é o que todos nós queremos. Nesse meu exemplo, mostra o ARJ compactando com barra progressiva.

Agora eu pergunto aos colegas que dizeram que o meu exemplo estaria fora de questão:

Compilaram o meu exemplo ??? Viram se funciona mesmo ?. Porque não seria justo estar falando do meu exemplo sem tê-lo rodado....
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Maligno escreveu:E foi como eu desconfiava. Mais ou menos como o ZIP da PKware: pouco eficiente. Vou continuar com o PKZIP.
Pois é, eu disto também sabia. Mas seria muito bom contar com um compactador que pudesse ser usado direto no nosso aplicativo em Clipper. Agora vem a tona aquela questão que é preferível utilizar um aplicativo EXTERNO (isto vai para aqueles colegas que negam-se em admitir o uso de aplicativos externos). E eu não tiro razão a você Maligno, porque eu ja desistí da questão de fazer um sistema de backup próprio. Mais ainda quando você se vê na questão de gravar em CDs (por exemplo) e a mídia apresenta problemas. Daí você fica involucrado numa questão muito importante e de grande risco por ter ter sido efetuado com eficiência. Hoje em dia em questão de gravar em CDs ~(na minha opinião) não tem nada melhor que o NERO.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Pablo César escreveu:Eu ainda não considero que o meu exemplo esteja fora do requisitado.
Só disse que está fora do que o colega requisitou porque ele mesmo disse:
Só que eu gostaria de, em vez de limpar a tela e acionar o Arj pelo comando RUN...
O que se entende é que ele quer fazer tudo pelo Clipper. A não ser, claro, que ele não tenha sido específico. Ele que se manifeste então.
Acho que se o problema estava em ler, pedir disquetes e dizer que o backup estava concluído... eu cumprí então.
Tudo bem. Perdido não está. Se ele não aproveitar, certamente alguém fará bom uso do seu código. Isso é o que importa. :)
Compilaram o meu exemplo ??? Viram se funciona mesmo ?. Porque não seria justo estar falando do meu exemplo sem tê-lo rodado....
Eu não testei. Nem vou testar. Não dá tempo. Olha a hora do meu post. Já estou trabalhando faz tempo. :(
Mas é como eu disse: não precisa ficar chateado. Ninguém disse que seu exemplo não funciona ou que não presta. Não duvido que funcione muito bem. Particularmente, estou satisfeito com o esquema que eu uso. Mas alguém achará muito útil o seu código, certamente.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Pablo César escreveu:Mas seria muito bom contar com um compactador que pudesse ser usado direto no nosso aplicativo em Clipper.
Não só seria bom, como perfeitamente possível. O algoritmo enflating foi posto em domínio público por Phil Kantz (fundador da PKware) há anos e existem bibliotecas (em C) já prontas. Provavelmente o XHarbour deve usar uma dessas. Colocar uma delas pra funcionar em Clipper seria relativamente fácil. Só não compensa.
Hoje em dia em questão de gravar em CDs ~(na minha opinião) não tem nada melhor que o NERO.
Não gosto do Nero. Prefiro o Roxio, que é bem mais intuitivo e não tem uma interface poluída como o Nero.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
miracle
Usuário Nível 3
Usuário Nível 3
Mensagens: 117
Registrado em: 14 Jun 2007 16:28
Localização: Sao Paulo SP

Mensagem por miracle »

Bom dia a todos!

Desculpem por eu não ter podido exclarecer melhor. Só acesso a internet de segunda a sexta. Por favor, não briguem por minha causa! Eu gostaria de continuar usando o Arj para compactar meus backups porque, na minha opinião, ele é o que mais comprime o arquivo compactado (entre PKzip e Arj). Mas isso se eu pudesse capturar a resposta do Arj pedindo inserção de disquetes, etc...

Vou tentar a lib sugerida pelo Sygecon, como o próprio Sygecon, o Maligno e o Eolo sugeriram. Mas vou tentar a solução do Pablo Cézar, também. O importante é o usuário pensar que o meu sistema está fazendo backup sem chamar o Arj ou PKZip e exibir todas as telas em português. Isso porque os meus "clientes" têm reclamado muito porque não entendem nada de inglês...

Até o final da semana eu posto o resultado, se meu computador voltar do conserto logo.

Muito obrigado a todos!
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

miracle escreveu:continuar usando o Arj para compactar meus backups porque, na minha opinião, ele é o que mais comprime o arquivo
Pelo que tenho visto a respeito, isso normalmente é verdade. Mas, com o WinZip 11 (WZZip) configurado para máxima compressão, pode-se conseguir compactação melhor que o ARJ.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

miracle escreveu:Desculpem por eu não ter podido exclarecer melhor. Só acesso a internet de segunda a sexta.
Ahh então era por isso... porque este fim de semana quase pegou fogo... hehe
miracle escreveu:Por favor, não briguem por minha causa!
Nem se preocupe com isso colega !. Você se acostumará logo com isso. E não é que nós brigamos aqui, eu tenho muito respeito e consideração com os meus colegas e mais ainda com estes colegas que atuam de forma muito participativa e de um ótimo grau de competência. Mesmo que muito não gostemos de admitir... esta aparente discussão se dá porque gostamos de expor as nossas idéias (e também vibramos quando a nossa sirviu o propósito de quem estava precisando...), mas tudo isto faz parte... é muito sadio que isso aconteça, pois é assim que aflorecem novas idéias e inclusive são aperfeiçoadas as técnicas que ora um utilizou e que fora enriquecida com comentários (construtivos) de outros colegas.
miracle escreveu:Eu gostaria de continuar usando o Arj para compactar meus backups porque, na minha opinião, ele é o que mais comprime o arquivo compactado (entre PKzip e Arj). Mas isso se eu pudesse capturar a resposta do Arj pedindo inserção de disquetes, etc...
Foi por causa disto que eu insistí com os colegas, pois disseram-me (em sintese) que você não queria mais usar o ARJ... Mas se a sua preocupação basea-se no retorno do ARJ para fazer pregunta em aplicativo Clipper... então como você ja deve ter visto (espero que você tenha conseguido compilar e executar meu exemplo) pois estaria resolvido.

Tenho também que aclarar que são criados dos tipos de arquivos antes de executar o Backup. Um é o arquivo que contém os arquivos a serem compactados (com o seu path completo) e o outro é um arquivo .BAT que executa o ARJ. Isto porque eu desdobro o meu BACKUP. No meu sistema tem opção de fazer Backup dos DADOS e do APLICATIVO (seriam os executáveis e arquivos de configuração). Este ultimo é normalmente despresável porque ocupa espaço, mas tem como opção.

Quanto a sua opção entre o ARJ e PKZIP e outros compactadores, eu também concordo com você que o ARJ, tem apresentado melhor compactação. Ora também oferece compatibilidade com outros descompactadores.
O Maligno escreveu:Pelo que tenho visto a respeito, isso normalmente é verdade. Mas, com o WinZip 11 (WZZip) configurado para máxima compressão, pode-se conseguir compactação melhor que o ARJ.
Bem eu não possuo o WINZIP versão 11, tenho feito o mesmo teste que apliquei anteriormente (com os mesmos arquivos), relembrando...
Total não compactado: 116.356 bytes
Compactado pelo RBCK_C52.LIB: 52.362 bytes
Compactado pelo ARJ v2.50a: 27.421 bytes
Baseado no mesmo teste com WINZIP 9 com máximo (conforme Maligno indica) apresentou:

Com opção "portable": 26.421 bytes
Com opção "enhanced deflated": 26.271 bytes

Porém esta opção "enhanced deflated" embora tenha se demostrado com maior compactação que o ARJ, esta opção não é compatível com versões anteriores do WINZIP ou até com outros descompactadores.

Maligno, já que você é a favor do WINZIP, poderia nos dar um exemplo de como é acionado o WINZIP de dentro do seu aplicativo para os seus clientes ?.

Quero aclarar a todos, que estou insitindo a respeito de escolher o melhor aplicativo (ou até mesmo biblioteca) que melhor se adapte aos aplicativos em Clipper para compactação e backup, ora porque eu também preciso continuar a procura do que melhor se adapte e preciso seus comentários.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Pablo César escreveu:Maligno, já que você é a favor do WINZIP, poderia nos dar um exemplo de como é acionado o WINZIP de dentro do seu aplicativo para os seus clientes ?.
Não uso o WinZIP, mas o WZZip, que é a versão de linha de comando, pelo DOS. Ele é só uma interface que permite utilizar o WinZip.

Criei uma interface própria, em que o usuário monta um script com suas configurações de back-up. Nele são definidos, além do básico (diretório fonte, arquivo destino, senha, etc.) quais arquivos serão ignorados, listas de extensões ignoradas, ou mesmo diretório ignorados, etc. Essas informações são salvas em arquivos do tipo INI (é outro sub-sistema que eu fiz). Exemplo do meu próprio back-up:

Código: Selecionar todos

[ID]
     NIG            = C,"639472"
     Versao         = C,"1.0"
     Descricao      = C,"BACK-UP DIRETORIO DE TRABALHO D:\WORK"
     UltAltData     = D,20070425
     UltAltHora     = C,"08:11:35"
     UltAltUsuario  = C,"StdUser_ABCDEFG"

[REGISTRO]
     UltExecData    = D,20070605
     UltExecHora    = C,"15:56:26"
     UltExecUsuario = C,"StdUser_ABCDEFG"
     UltExecResult  = N,0

[ARQUIVOS]
     Empresas       = L,0
     EmpresaNome    = C,""
     EmpresaSigla   = C,""
     FonteDif       = L,1
     FonteDifDir    = C,"d:\work\*.*"
     Destino        = C,"c:\<ano4><mes><dia>.zip"
     Exclui_BAK     = L,1
     Exclui_BAT     = L,0
     Exclui_COM     = L,1
     Exclui_EXE     = L,1
     Exclui_HLP     = L,1
     Exclui_CDX     = L,1
     Exclui_PIF     = L,1
     Exclui_RPT     = L,1
     Exclui_TBF     = L,1
     Exclui_TBV     = L,1
     Exclui_TMP     = L,1
     Exclui_PACKS   = L,0
     Exclui_Lista2  = C,"*.~*,*.fdb,*.nbt,*.map,*.obj,*.ppo,*.il*,*.dll,*.tds,;
                        *.res,*.wav,d:\work\cd\*.*,d:\work\website\*.*"

[PARAMETROS]
     ProgBackUp     = C,"c:\arquiv~1\winzip\wzzip.exe"
     BKPIncremental = L,0
     FormatarDisco  = L,0
     ApagarDisco    = L,0
     ProtegComSenha = L,1
     PesqDiretorios = L,1
     SalvDiretorios = L,1
     UsaNomesLongos = L,1
A partir disso, ao acionar a execução do back-up, carrego o INI, monto a matriz que agrupa essa informações todas e monto a linha de comando. Finalmente, pela função SwpRunCmd(), executo o PKZip ou WZZip, conforme a escolha do cliente. O programa é identificado pelo CRC32 dele, já previamente calculado. E eu preciso saber qual é o compactador utilizado porque as opções de configuração usam switches diferentes. Sem conhecer as diferenças seria impossível montar minha linha de comando.

Aliás, falando em CRC32, o arquivo INI não pode ser alterado em editores comuns. Apenas através do programa. Não quero correr o risco de causarem danos aos scripts. Garanto isso injetando uma assinatura digital, também por CRC32, mas modificado.

Detalhe: repare que a ID "REGISTRO" carrega a informação de quando e quem executou esse script pela última vez.

Como o usuário pode montar vários scripts, tenho um browser que mostra todos os scripts criados. O usuário escolhe um e executa. Mas tenho como configurar um "default", para execução rápida ou agendada.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Parece interessante, mas quando você diz:
carrego o INI, monto a matriz que agrupa essa informações todas e monto a linha de comando. Finalmente, pela função SwpRunCmd()
Mas como seria as opções do WINZIP, poderias dar exemplos com parametrização do WINZIP ?

Gostei da idéia de legitimar o conteúdo do script pelo CRC32, essa medida não permite que seja feito o "não autorizado" dos arquivos. Mas de todas formas, o usuário tem como disponível o WINZIP podendo usá-lo manualmente de má fé.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Pablo César escreveu:poderias dar exemplos com parametrização do WINZIP ?
São vários switches de configuração. Aliás, o WZZip usa toda a configuração do WinZip. Essa linha de comando é montada de acordo com a configuração do script. Inclusive, esqueci de um detalhe: como a lista de exclusões poderia fazer a linha de comando ficar muito extensa e impossível de executar, eu monto um arquivo temporário para armazenar apenas as exclusões. Tanto o PKZip quanto o WinZip permitem informar uma lista de exclusões num arquivo à parte. Facilita o trabalho.
Mas de todas formas, o usuário tem como disponível o WINZIP podendo usá-lo manualmente de má fé.
Mas fica registrado no script quando foi feito o último back-up e por quem. Inclusive, o resultado da operação, se bem ou mau sucedida. No exemplo que postei, se você reparar, verá um zero. Significa que a operação não foi completada.

Se quiser, posso postar à noite um programa exemplo (EXE), apenas para testar o PKZip ou WinZip (o que você tiver), com a parte de configuração.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Eu não tenho esse WZZip que você menciona. Mas achei o aplicativo em Aqui para download e irei testar.

Se puder postar um exemplo do acionamento através do seu script, iria ajudar.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Pablo César escreveu:Eu não tenho esse WZZip que você menciona. Mas achei o aplicativo em Aqui para download e irei testar.
Ah, sim. Esqueci de dizer. O nome do produto é "WinZip Command Line Support Add-On". O nome do EXE é que é WZZip.
Se puder postar um exemplo do acionamento através do seu script, iria ajudar.
À noite preparo e mando pro meu site.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

O WZZip, é para ambiente gráfico ?. Porque se for assim iria ter aquele problema de alternar com a aplicação que o chamou. Isto é, se a aplicação principal não estiver em modo "Janelado", não será possivel que retorne à aplicação principal após ter executado o Backup. Isto digo, é claro, a aplicação principal iria ficar minimizado em WIN95 e 98 e o usuário tan_tan iria chamar outra seção do sistema...
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Responder