« 1 2 (3)


Re: Faire des sauvegardes à partir d'un menu
Anonyme
Cette erreur va etre transmise aux support technique car dans certains cas, elle provoque une erreur sans pour autant retourner un numéro ou un message d'Erreur

Pour continuer à utiliser cette fonction il est donc necéssaire de modifier le code de la façon suivante:
Créer un nouvelle fonction :
Procedure RendRepertoire(pFichier)
Quand Exception
 RENVOYER ""
FIN
RENVOYER {pFichier}..Repertoire


puis remplacer le code à partir de :
SREPERTOIRESDONNEES = {SFICHIERNOM}..REPERTOIRE
//Par
SREPERTOIRESDONNEES = RendRepertoire(sFichierNom)
SI SREPERTOIRESDONNEES="" ALORS GOTO SUITE
//Chemin complet du fichier à sauvegarder
sFichierSource = {sFichierNom}..Répertoire+"\"+sFichierNom+{sFichierNom}..Extension
//Chemin Complet du fichier a creer	
sFichierDestination = Répertoire+"\"+sFichierNom+{sFichierNom}..Extension	
//On ferme le Fichier au cas ou	
SI PAS HFerme(sFichierNom) ALORS		
 Erreur(HErreurInfo())		
 //Tous les fichiers n'était pas fermés		
 //Le fichier ne peut pas etre fermé alors on quitte la sauvegarde	
FIN	
//On copie le fichier	
fCopieFichier(sFichierSource,sFichierDestination,frJauge)

SUITE:
FIN
Sablier(Faux)Info("La sauvegarde des fichiers s'est correctement effectuée.")

Cette modification permet de passer outre l'erreur Génerer par {sFichierNom}..Repertoire et de passer au fichier suivant
Un log ou un message est alors peut etre nécessaire pour afficher les fichiers non sauvegardés

Contribution le : 24/02/2004 16:17
Créer un fichier PDF de la contribution Imprimer


Re: Faire des sauvegardes à partir d'un menu
Utilisateur WDF
Inscrit:
15/01/2004 11:33
De Etoile (26)
Post(s): 70
Merci beaucoup pour l'information. mon code peut s'exécuter jusqu'à la fin.

Par contre je suis un peu embêter car du coup sur l'ensemble de mes fichiers (il y en a 29), seul 19 se sont archivés. Comment remédier au problème des dix autres :(?

En tout cas, merci pour tous.

En attendant je vais passer à mon autre partie de projet :

-Faire la même chose mais en sens inverse, c'est à dire mettre les fichiers d'archivages à la place des originaux (au cas il y a où un plantage).

Je pense qu'une petite inversion dans Fcopiefichier() suffira :p

Contribution le : 26/02/2004 09:37
Créer un fichier PDF de la contribution Imprimer


Re: Faire des sauvegardes à partir d'un menu
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Bonjour AngelMJ

Les fichiers sont-il débloqués ?
Avant de lancer ce traitment il faut s'assurer que tous les fichiers sont fermés : HFerme("*") et Multitache()

Pour l'opération de retour, je t'invite à remplir au long le long un petit TXT (log), qui te permettra de realiser la copie inverse : fichier TAB répertoire d'origine.


Contribution le : 26/02/2004 09:43
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: Faire des sauvegardes à partir d'un menu
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour AngelMJ
Modifie ta procedure comme suit:
PROCEDURE Archivages()
//Variables locales
sUnFichier est une chaînes
FichierNom est une chaînes
FichierSource est une chaînes
FichierDestination est une chaînes
RepertoireDonnees est une chaîne
i est un entier

//Si une erreur intervient 
QUAND EXCEPTION	
 Erreur("Une erreur est intervenu lors de l'archivage desfichiers.","L'opération a été annulée.")
 //Pour dire que la sauvegarde ne s"est pas terminée correctement	retour//
FIN
//Tout d'abord on prend le chemin de l'emplacement où
//l'utilisateur souhaite créer le dossier d'archivage
Répertoire est une chaîne = fRepSélecteur("C:\", "Choisir un répertoire",..."Sélectionnez le répertoire dans lequel vous désirez mettre votre dossier d'archivage :")
//Si il n'y a rien de choisi, on arrête tout
SI Répertoire="" ALORS  
RETOUR
FIN
//Le nom du dossier prend la date
NomRep est une chaîne =DateDuJour()
Info("Le dossier d'archivage portera le nom : "+NomRep)
//On complète le nom du répertoire avec le nom d'archivage
Répertoire=Répertoire+"\"+NomRep
//On récupère le nom du projet
gProjetNom est une chaîne = ProjetInfo(piNomProjet)
//On récupère la liste des fichiers
sListeFichier est une chaîne = HListeFichier(hLstDétail)
//Création du répertoire journalier
SI fRep(Répertoire,frRépertoire)= "" ALORS	
 SI PAS fRepCrée(Répertoire) ALORS
  Erreur(ErreurInfo())		
  //Sauvegarde terminée prématurément		
  RETOUR	
 FIN
FIN
//On change le curseur
Sablier()
//Boucle sur les fichiers
BOUCLE	
 i++	
 //On récupère les infos d'un fichier	
 sUnFichier = ExtraitChaîne(sListeFichier,i,RC)	
 //On sort si il n'y a plus de fichier à traiter	
 SI sUnFichier= EOT ALORS SORTIR	
 //On récupère le nom Physique du fichier en 3ème position	
 sFichierNom = ExtraitChaîne(sUnFichier,3)	
 //On récupère son répertoire    

    
 // *** ICI C'EST LA PARTIE A MODIFIER 	***
 SI RendRepertoire <> "" alors  SREPERTOIRESDONNEES = RendRepertoire{SFICHIERNOM}..REPERTOIRE	
 //Chemin complet du fichier à sauvegarder	 
 sFichierSource = SREPERTOIRESDONNEES+"\"+sFichierNom+{sFichierNom}..Extension	
 // *** FIN DE LA MODIFICATION ***

 //Chemin Complet du fichier a creer	
 sFichierDestination = Répertoire+"\"+sFichierNom+{sFichierNom}..Extension	
 //On ferme le Fichier au cas ou	
 SI PAS HFerme(sFichierNom) ALORS		
  Erreur(HErreurInfo())		
  //Tous les fichiers n'était pas fermés		
  //Le fichier ne peut pas etre fermé alors on quitte la sauvegarde	
 FIN	
 //On copie le fichier	
 fCopieFichier(sFichierSource,sFichierDestination,frJauge)
FIN
Sablier(Faux)
Info("La sauvegarde des fichiers s'est correctement effectuée.")


En effet la fonction RendRepertoire renvoi "" si la fonction à provoque une erreur avec {sFichierNom}..Repertoire
le repertoire etant = "" le fichier n'etait pas trouvé
Avec cette modif SREPERTOIRESDONNEES n'est modifié que si la fonction à réussi
Comme dans la plupart des projet les donnees sont stocké au meme endroit cette solution devrait fonctionner quasiment dans tous les cas

Contribution le : 26/02/2004 10:02
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Faire des sauvegardes à partir d'un menu
Utilisateur WDF
Inscrit:
15/01/2004 11:33
De Etoile (26)
Post(s): 70
Oui j'ai bien pensé à fermer mes fichiers mais cela ne change rien. D'ailleurs j'ai essayé de refaire plusieurs fois l'opération et ce sont toujours les mêmes fichiers qui ne veulent pas se copier.

Je n'ai pas bien compris la fin de ton poste...

Contribution le : 26/02/2004 10:10
Créer un fichier PDF de la contribution Imprimer


Re: Faire des sauvegardes à partir d'un menu
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Un petit effort AngelMJ !

Citation :
Pour l'opération de retour, je t'invite à remplir au long le long un petit TXT (log), qui te permettra de realiser la copie inverse : fichier TAB répertoire d'origine.


Dans la boucle de ta copie de sauvegarde, tu enregistres dans un fichier texte (fecrit) la liste de chaque fichier traité.
Ainsi, lors de la restauration, tu parcours ce fichier pour recopier les données à leur enplacement d'origine. D'où la structure proposée : NomFichier TAB REPERTOIRE d'origine


Contribution le : 26/02/2004 10:17
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant
« 1 2 (3)




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2