IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Valeur renvoyée par InitParamètre [WD12]


Sujet :

WinDev

  1. #1
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut Valeur renvoyée par InitParamètre
    Bonjour les amis!

    Pour la sauvegarde des paramètres de l'application, j'utilise dans le code d'initialisation de la fenêtre principale le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SI fRepCrée(SysRep(srAppData)+"\"+MonAppli) ALORS
    	// Paramétrage des valeurs persistantes dans un fichier .XML qui dépend de l'utilisateur 
    	InitParamètre(paramXML ,SysRep(srAppData)+"\"+MonAppli+"\Param_"+gsCuser+".xml")
    FIN
    Tout fonctionne correctement sauf lorsque survient une brusque extinction de la machine (coupures électricité très fréquentes ici, onduleur naze...)

    Quand cela arrive le fichier paramètre en question se trouve à sa place, mais n'a qu'une taille de 0 octets.
    Après suppression de ce fichier, l'appli repart et réinitialise les paramètres.
    Très laborieux au telephone avec le client surtout que AppliData est caché....

    Je souhaiterai donc récupérer la valeur renvoyée de initparamètre() qui d'après l'aide est une chaine pour essayer de faire cette suppression en auto.
    Est ce la bonne méthode?
    Existe t-il un moyen de tester la "défectuosité" de ce fichier avant de faire le initparametre() ?

    Merci d'avance pour toute aide

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour,

    Tu pourrais simplement exécuter fTaille() pour obtenir le taille de ton fichier de paramètres.

    Et puis, s'il n'a pas la bonne taille, tu le supprimes.
    _

  3. #3
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut
    JBO

    Aussi simple que cela!

    Merci

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour zouzoukha !

    Si tu veux faire plaisir à ton client, je te suggère une amélioration de la gestion du fichier de paramétrage, pour mieux "résister" aux pertes de données.
    Je m'explique...

    Avant de déclarer le fichier de paramétrage, tu contrôles qu'il est n'est pas "défectueux" (taille>0).
    Si tout va bien, tu en fais une copie de sauvegarde, dans le même dossier avec un nouveau nom (par exemple tu ajoutes l'extension .svg ou .bak).
    En revanche, si le fichier est défectueux, tu le supprimes et s'il existe un fichier de sauvegarde, tu le renommes pour qu'il soit utilisé en lieu et place du fichier défectueux.

    A une prochaine fois.
    _

  5. #5
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut
    TROP TOP JBO

    Mise en oeuvre immédiate!

  6. #6
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut
    Salut les amis!

    J'ai donc mis en place l'amélioration suggéré par JBO, seulement je n'ai aucun moyen de tester.

    Je pensais que la coupure d'électricité pouvait être simulée en appuyant longement sur le bouton power.

    Mais au redémarrage avant de lancer l'application mon fichier Param est bien là avec une taille supérieure à 0.

    Donc question comment tester mon code au cas ou la taille du fichier est 0?

    Ci dessous le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    //Création Répertoire
    SI fRepCrée(SysRep(srAppData)+"\"+MonAppli) ALORS
    	//Si le fichier existe
    	SI fFichierExiste(SysRep(srAppData)+"\"+MonAppli+"\Param_"+gsCuser+".xml") ALORS
    		// si le fichier est défectueux
    		SI fTaille(SysRep(srAppData)+"\"+MonAppli+"\Param_"+gsCuser+".xml")<=0 ALORS
    			// On le supprime
    			SI fSupprime(SysRep(srAppData)+"\"+MonAppli+"\Param_"+gsCuser+".xml") ALORS
    				// On cherche le fichier de sauvegarde
    				SI fFichierExiste(SysRep(srAppData)+"\"+MonAppli+"\Param_"+gsCuser+".bak") ALORS
    					// On renomme le fichier de sauvegarde
    					SI PAS fRenomme(SysRep(srAppData)+"\"+MonAppli+"\Param_"+gsCuser+".bak",SysRep(srAppData)+"\"+MonAppli+"\Param_"+gsCuser+".xml") ALORS
    						ErreurInfo(errComplet)
     
    					FIN
    				FIN
     
    			FIN
     
    		FIN	
    	FIN
     
    	// Paramétrage des valeurs persistantes dans un fichier .XML qui dépend de l'utilisateur 
    	InitParamètre(paramXML ,SysRep(srAppData)+"\"+MonAppli+"\Param_"+gsCuser+".xml")
    	// Sauvegarde du fichier bak si tout s'est bien passé
    	SI PAS fCopieFichier(SysRep(srAppData)+"\"+MonAppli+"\Param_"+gsCuser+".xml",SysRep(srAppData)+"\"+MonAppli+"\Param_"+gsCuser+".bak") ALORS
    		ErreurInfo(errComplet)
    	FIN
     
    FIN
    Merci d'avance

  7. #7
    Membre chevronné Avatar de EDM-TAHITI
    Homme Profil pro
    Directeur Service informatique et projet développement
    Inscrit en
    Janvier 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Directeur Service informatique et projet développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 994
    Points : 1 995
    Points
    1 995
    Par défaut
    Hello,
    tu peux employer la méthode dite 'à la hussarde' qui consiste à prendre le cable d'alimentation et de débrancher le PC...
    mais à mon sens, il existe un autre solution, à savoir,
    tu quittes ton application, tu mets ton fichier à vide et tu redémarres l'application, elle devrait se comporter comme si le courant avait été rétabli... et relancer la machine.
    Ensuite, tu regardes en tracant si le code se comporte comme tu le souhaites
    le savoir est dans les livres, 'the magic touch F1'
    Amicalement
    Eric

  8. #8
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut
    Salut EDM et merci ... mais ...

    Citation Envoyé par EDM-TAHITI Voir le message
    tu mets ton fichier à vide
    Voila mon réel souci d'ignare! Comment mettre un fichier à vide?

  9. #9
    Membre chevronné Avatar de EDM-TAHITI
    Homme Profil pro
    Directeur Service informatique et projet développement
    Inscrit en
    Janvier 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Directeur Service informatique et projet développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 994
    Points : 1 995
    Points
    1 995
    Par défaut
    Hello,
    Il n'existe pas de question idiote, mais uniquement des réponses bêtes....
    Je te livre ce que je fais...
    Tu vas sur la ligne de commande (Demarrer, executer, cmd, puis faire entrée)
    Tu te retrouves dans la fenetre console
    Apres, la notion de [NOM_FICHIER.EXT] remplace la vrai nom de ton fichier, alors allons-y
    sur la ligne de commande, tu tapes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    copy con [NOM_FICHIER.EXT] puis tu fais entrée...
    znsuite le curseur va à la ligne, tu es dans le fichier alors tu fais la touche de fonction F6 puis tu fais entrée

    Le curseur revient sur la ligne de commande, tu constateras que ton fichier est créée, mais à vide...

    Mission réussie, bon dimanche
    le savoir est dans les livres, 'the magic touch F1'
    Amicalement
    Eric

  10. #10
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut
    Du Tonnerre!

    Ca marche cool

    Merci pour tout!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/09/2007, 15h59
  2. [Windev 9] Valeur renvoyée par une fenêtre
    Par Romanops dans le forum WinDev
    Réponses: 10
    Dernier message: 04/01/2007, 17h54
  3. Valeur renvoyée par interrupteur (check box)
    Par nath-0-0 dans le forum WinDev
    Réponses: 8
    Dernier message: 29/11/2006, 16h33
  4. Réponses: 1
    Dernier message: 31/07/2006, 13h54
  5. [SQL] php et recuperation d'une valeur renvoyée par une fonction sql
    Par highman dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/06/2006, 15h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo