Le Thu, 13 Mar 2008 22:07:44 +0100, Paul Géra a écrit:
Bonsoir tout le monde,
Avez-vous la possibilité de me donner un "coup de main" suite à ma demande ?
Merci !!
PG
"Paul Géra" a écrit dans le message de news:47d3addf$0$1926$
Bonjour,
Je suis à la recherche d'un code permettant de sauvegarder dans un fichier ZIP l'ensemble des fichiers HF classic de mon application.
Auriez-vous un tel code ?
Merci d'avance !
Bonjour,
Nous utilisons d'autres outils pour les sauvegardes , mais a priori WD dispose de ce qu'il faut:
.recherche des fichiers de l'analyse .parcours de dossier/fichiers .fonction de compression zip
Il me semble que cela ne devrait pas poser de problème sauf à avoir raté quelque chose. -- J.Bratières
Romain PETIT
Paul Géra a formulé la demande :
Bonsoir tout le monde,
Bonjour,
Avez-vous la possibilité de me donner un "coup de main" suite à ma demande ?
Ci dessous un vieux machin fait en 5.5 (ya mieux depuis...) ******************************************** // globales : // g_repsauve = repertoire de sauvegarde // g_repjour = répertoire du jour (.appliAAAAAAAAMMJJ) // Champs : // s_Bk = champ de saisie // Classes : // Hfr instance de classe cReseau ch est une chaine nomfichierHF est une chaine ms est une chaine c est un entier ok est un booleen=vrai si s_bk=g_repsauve+milieu(datesys(),3,6)+"" alors frepcree(g_repsauve) frepcree(g_repsauve+milieu(datesys(),3,6)+"") FIN
si s_bk~="" alors erreur("Le répertoire de sauvegarde n'est pas valide") retour FIN
si droite(s_bk,1)<>"" alors s_bk=s_bk+""
//Vérification du blocage de fichier ch=Hlistefichier(faux) c=0 boucle c++ nomfichierHF=extraitchaine(ch,c,rc) si nomfichierHF=eot alors sortir boucle pg_Tracer("Tentative de blocage total du fichier... " + nomfichierHF+"...") hBloqueTotalFichier(nomfichierHF) si hdejabloque() alors si ouiNOn("Le fichier " + nomfichierHF + " est utilisé par un autre poste."+rc+... "Vous devez attendre que tous les utilisateurs ferment le programme avant de procéder à la sauvegarde..."+rc+RC+... "OUI pour retenter, Non pour abandonner la procédure")=Non alors pg_Tracer("Fichier " + nomfichierHF + " bloqué, abandon de la sauvegarde") RETOUR sinon pg_Tracer("Fichier " + nomfichierHF + " bloqué, réessai...") FIN sinon pg_Tracer("Fichier " + nomfichierHF + " Ok pour la sauvegarde") sortir FIN fin fin
// Création d'une archive et ajout d'un répertoire // avec ses sous répertoires // Avec jauge et affichage des noms des fichiers hfr:fermer("")
si frep(s_bk+"T21"+milieu(datesys(),3,6)+".ZDB",frfichier)<>"" alors si ouinon(non,... "T21"+milieu(datesys(),3,6)+".ZDB"+rc+rc+"Le fichier existe déjà, continuer ?")=non alors retour //32:Le fichier existe déjà. FIN NumErrZip est un entier NumEvenement est un entier // on crée l'archive en local, elle sera ensuite copiée... NumErrZip = ZipCrée("BK",g_RepJour+s_nom) si NumErrZip = 0 alors ouvrefille("f_ATTENT",faux,MessTraduit(2000)) //2000:Compression en cours NumEvenement = Evenement("f_attent.JaugeCompression","f_attent", jaugecompactage)//fenenexecution(),jaugecompactage) // on ne garde pas le chemin et les disque !! non géré si chemin UNC !! NumErrZip = zipAjouteRépertoire("BK",s_db,faux,zipaucun)//,ziprepertoire)//zipDisque) si NumErrZip <> 0 alors pg_Err("Erreur de compression "+zipMsgErreur(NumErrZip) + rc+... zipFichierEnCours("BK"),vrai) okúux Fin FinEvenement(NumEvenement) ferme("f_attent") zipferme("BK") si ok alors pg_tracer("Archive locale <" + g_RepJour+s_nom +"> prête à être copiée sur <" + s_bk+"> ...") si fg_Copie(g_RepJour+s_nom, s_bk+s_nom, vrai) alors fg_ecritparam("Maintenance","Date derniere sauvegarde",datesys(),CT_tTEXT) fg_ecritparam("Maintenance","Fichier derniere sauvegarde",s_bk+s_nom,CT_tTEXT) pg_Tracer(MessTraduit(2003)+rc+rc+"ARCHIVE="+s_bk+s_nom) //2003:Sauvegarde de la base de donn... info("Sauvegarde terminée") fin fin sinon pg_err("Erreur de compression "+rc+zipMsgErreur(NumErrZip),vrai) //38:Erreur dans le compactage de la base de donn... fin fin
Avez-vous la possibilité de me donner un "coup de main" suite à ma
demande ?
Ci dessous un vieux machin fait en 5.5 (ya mieux depuis...)
********************************************
// globales :
// g_repsauve = repertoire de sauvegarde
// g_repjour = répertoire du jour (.appliAAAAAAAAMMJJ)
// Champs :
// s_Bk = champ de saisie
// Classes :
// Hfr instance de classe cReseau
ch est une chaine
nomfichierHF est une chaine
ms est une chaine
c est un entier
ok est un booleen=vrai
si s_bk=g_repsauve+milieu(datesys(),3,6)+"" alors
frepcree(g_repsauve)
frepcree(g_repsauve+milieu(datesys(),3,6)+"")
FIN
si s_bk~="" alors
erreur("Le répertoire de sauvegarde n'est pas valide")
retour
FIN
si droite(s_bk,1)<>"" alors s_bk=s_bk+""
//Vérification du blocage de fichier
ch=Hlistefichier(faux)
c=0
boucle
c++
nomfichierHF=extraitchaine(ch,c,rc)
si nomfichierHF=eot alors sortir
boucle
pg_Tracer("Tentative de blocage total du fichier... " + nomfichierHF+"...")
hBloqueTotalFichier(nomfichierHF)
si hdejabloque() alors
si ouiNOn("Le fichier " + nomfichierHF + " est utilisé par un autre poste."+rc+...
"Vous devez attendre que tous les utilisateurs ferment le programme avant de procéder à la sauvegarde..."+rc+RC+...
"OUI pour retenter, Non pour abandonner la procédure")=Non alors
pg_Tracer("Fichier " + nomfichierHF + " bloqué, abandon de la sauvegarde")
RETOUR
sinon
pg_Tracer("Fichier " + nomfichierHF + " bloqué, réessai...")
FIN
sinon
pg_Tracer("Fichier " + nomfichierHF + " Ok pour la sauvegarde")
sortir
FIN
fin
fin
// Création d'une archive et ajout d'un répertoire
// avec ses sous répertoires
// Avec jauge et affichage des noms des fichiers
hfr:fermer("")
si frep(s_bk+"T21"+milieu(datesys(),3,6)+".ZDB",frfichier)<>"" alors
si ouinon(non,...
"T21"+milieu(datesys(),3,6)+".ZDB"+rc+rc+"Le fichier existe déjà, continuer ?")=non alors retour //32:Le fichier existe déjà.
FIN
NumErrZip est un entier
NumEvenement est un entier
// on crée l'archive en local, elle sera ensuite copiée...
NumErrZip = ZipCrée("BK",g_RepJour+s_nom)
si NumErrZip = 0 alors
ouvrefille("f_ATTENT",faux,MessTraduit(2000)) //2000:Compression en cours
NumEvenement = Evenement("f_attent.JaugeCompression","f_attent", jaugecompactage)//fenenexecution(),jaugecompactage)
// on ne garde pas le chemin et les disque !! non géré si chemin UNC !!
NumErrZip = zipAjouteRépertoire("BK",s_db,faux,zipaucun)//,ziprepertoire)//zipDisque)
si NumErrZip <> 0 alors
pg_Err("Erreur de compression "+zipMsgErreur(NumErrZip) + rc+...
zipFichierEnCours("BK"),vrai)
okúux
Fin
FinEvenement(NumEvenement)
ferme("f_attent")
zipferme("BK")
si ok alors
pg_tracer("Archive locale <" + g_RepJour+s_nom +"> prête à être copiée sur <" + s_bk+"> ...")
si fg_Copie(g_RepJour+s_nom, s_bk+s_nom, vrai) alors
fg_ecritparam("Maintenance","Date derniere sauvegarde",datesys(),CT_tTEXT)
fg_ecritparam("Maintenance","Fichier derniere sauvegarde",s_bk+s_nom,CT_tTEXT)
pg_Tracer(MessTraduit(2003)+rc+rc+"ARCHIVE="+s_bk+s_nom) //2003:Sauvegarde de la base de donn...
info("Sauvegarde terminée")
fin
fin
sinon
pg_err("Erreur de compression "+rc+zipMsgErreur(NumErrZip),vrai) //38:Erreur dans le compactage de la base de donn...
fin
fin
--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avez-vous la possibilité de me donner un "coup de main" suite à ma demande ?
Ci dessous un vieux machin fait en 5.5 (ya mieux depuis...) ******************************************** // globales : // g_repsauve = repertoire de sauvegarde // g_repjour = répertoire du jour (.appliAAAAAAAAMMJJ) // Champs : // s_Bk = champ de saisie // Classes : // Hfr instance de classe cReseau ch est une chaine nomfichierHF est une chaine ms est une chaine c est un entier ok est un booleen=vrai si s_bk=g_repsauve+milieu(datesys(),3,6)+"" alors frepcree(g_repsauve) frepcree(g_repsauve+milieu(datesys(),3,6)+"") FIN
si s_bk~="" alors erreur("Le répertoire de sauvegarde n'est pas valide") retour FIN
si droite(s_bk,1)<>"" alors s_bk=s_bk+""
//Vérification du blocage de fichier ch=Hlistefichier(faux) c=0 boucle c++ nomfichierHF=extraitchaine(ch,c,rc) si nomfichierHF=eot alors sortir boucle pg_Tracer("Tentative de blocage total du fichier... " + nomfichierHF+"...") hBloqueTotalFichier(nomfichierHF) si hdejabloque() alors si ouiNOn("Le fichier " + nomfichierHF + " est utilisé par un autre poste."+rc+... "Vous devez attendre que tous les utilisateurs ferment le programme avant de procéder à la sauvegarde..."+rc+RC+... "OUI pour retenter, Non pour abandonner la procédure")=Non alors pg_Tracer("Fichier " + nomfichierHF + " bloqué, abandon de la sauvegarde") RETOUR sinon pg_Tracer("Fichier " + nomfichierHF + " bloqué, réessai...") FIN sinon pg_Tracer("Fichier " + nomfichierHF + " Ok pour la sauvegarde") sortir FIN fin fin
// Création d'une archive et ajout d'un répertoire // avec ses sous répertoires // Avec jauge et affichage des noms des fichiers hfr:fermer("")
si frep(s_bk+"T21"+milieu(datesys(),3,6)+".ZDB",frfichier)<>"" alors si ouinon(non,... "T21"+milieu(datesys(),3,6)+".ZDB"+rc+rc+"Le fichier existe déjà, continuer ?")=non alors retour //32:Le fichier existe déjà. FIN NumErrZip est un entier NumEvenement est un entier // on crée l'archive en local, elle sera ensuite copiée... NumErrZip = ZipCrée("BK",g_RepJour+s_nom) si NumErrZip = 0 alors ouvrefille("f_ATTENT",faux,MessTraduit(2000)) //2000:Compression en cours NumEvenement = Evenement("f_attent.JaugeCompression","f_attent", jaugecompactage)//fenenexecution(),jaugecompactage) // on ne garde pas le chemin et les disque !! non géré si chemin UNC !! NumErrZip = zipAjouteRépertoire("BK",s_db,faux,zipaucun)//,ziprepertoire)//zipDisque) si NumErrZip <> 0 alors pg_Err("Erreur de compression "+zipMsgErreur(NumErrZip) + rc+... zipFichierEnCours("BK"),vrai) okúux Fin FinEvenement(NumEvenement) ferme("f_attent") zipferme("BK") si ok alors pg_tracer("Archive locale <" + g_RepJour+s_nom +"> prête à être copiée sur <" + s_bk+"> ...") si fg_Copie(g_RepJour+s_nom, s_bk+s_nom, vrai) alors fg_ecritparam("Maintenance","Date derniere sauvegarde",datesys(),CT_tTEXT) fg_ecritparam("Maintenance","Fichier derniere sauvegarde",s_bk+s_nom,CT_tTEXT) pg_Tracer(MessTraduit(2003)+rc+rc+"ARCHIVE="+s_bk+s_nom) //2003:Sauvegarde de la base de donn... info("Sauvegarde terminée") fin fin sinon pg_err("Erreur de compression "+rc+zipMsgErreur(NumErrZip),vrai) //38:Erreur dans le compactage de la base de donn... fin fin