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

VB.NET Discussion :

Problème fichier.ini au lancement de l'application [Débutant]


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Astronome amateur
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Astronome amateur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Points : 9
    Points
    9
    Par défaut Problème fichier.ini au lancement de l'application
    Bonjour,

    Mon application doit récupérer certains paramètres figurant dans un fichier ini.

    Avec le code ci-dessous, lorsque je modifie la valeur de mon numericUpDown8 (par exemple à 352), celle-ci va s'enregistrer dans le fichier configacs.ini. Pas de problème au niveau de l'écriture.
    Je ferme l'appli, je regarde dans le fichier pour être sur que la dernière valeur à bien été sauvegardée. 352, Ok
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub NumericUpDown8_ValueChanged(sender As Object, e As EventArgs) Handles NumericUpDown8.ValueChanged
            SetCle("c:\configacs.ini", "parametres", "lam_Umi", NumericUpDown8.Value)
        End Sub
    J'ai placé la ligne ci-après dans Form1_Load
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NumericUpDown8.Value = CDec(GetCle("c:\configacs.ini", "parametres", "lam_Umi"))
    et c'est ici que j'ai un problème car la récupération de la valeur de la clé ne se fait pas. NumericUD8 se met à la valeur 100 (qui est la valeur mini que je lui ai indiqué dans ses propriétés).
    Pire, sans n'avoir rien touché depuis l'ouverture de l'appli, je regarde dans mon fichier.ini et la valeur de la clè n'est plus 352 mais 100 ??.

    A noter que j'ai fait un test avec un simple bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click
            NumericUpDown8.Value = CDec(GetCle("c:\configacs.ini", "parametres", "lam_Umi")) + 2
        End Sub
    A chaque clic sur le bouton, la valeur de numericUD8 est bien incrémenté de +2.

    Le problème de lecture de la valeur de la clé n'existe donc qu'au chargement de l'appli. Je suis un peu perdu et je veux bien de l'aide.

    Merci

    Franck

  2. #2
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    C'est un comportement normal :

    Lorsque tu lances ton programme la procédure "IntitializeComponent" est lancée, tu ne le vois pas explicitement mais ton Form1 corresponds à cela :

    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
     
    Public Class Form1
     
        Sub New()
     
            ' Cet appel est requis par le concepteur. Tous les events des controles que tu as préalablement positionnés sur ton Form1 dans ton projet se situent dans cette procédure "InitializeComponent" !
            InitializeComponent()
     
            ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
            '........
        End Sub
     
        '...........
        '.................
        '......................
    End Class
    ........ce qui implique que l'event ValueChanged du controle NumericUpDown est appelée donc ce code est éxécuté (avec la valeur par défaut de la propriété "Value" présente également dans la méthode InitializeComponent):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    Private Sub NumericUpDown8_ValueChanged(sender As Object, e As EventArgs) Handles NumericUpDown8.ValueChanged
            SetCle("c:\configacs.ini", "parametres", "lam_Umi", NumericUpDown8.Value)
        End Sub
    Pour palier à cela il faut créer un flag de type booléen pour dire que si le controle NumericUpdDown ne possède pas le focus alors on n'entre pas dans l'event ValueChanged :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        Private NumericClicked As Boolean
     
        Private Sub NumericUpDown8_Click(sender As Object, e As EventArgs) Handles NumericUpDown8.GotFocus
            NumericClicked = True
        End Sub
     
        Private Sub NumericUpDown8_ValueChanged(sender As Object, e As EventArgs) Handles NumericUpDown8.ValueChanged
            If NumericClicked Then
                SetCle("c:\configacs.ini", "parametres", "lam_Umi", NumericUpDown1.Value)
                NumericClicked = False
            End If
        End Sub
    A+

  3. #3
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    Tu as inclus ton fichier ini aux sources du projet avec comme propriété de compilation (le terme exact ne me revient pas à l'instant) de toujours le copier, et tu fais tes tests en lançant le déboguage depuis l'IDE
    Conséquence, le fichier ini original des sources est systématiquement recopié dans le répertoire d’exécution au lancement, écrasant celui qui a été modifié précédemment.

    J'ai bon ?
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  4. #4
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par sevyc64 Voir le message
    Tu as inclus ton fichier ini aux sources du projet avec comme propriété de compilation (le terme exact ne me revient pas à l'instant) de toujours le copier, et tu fais tes tests en lançant le déboguage depuis l'IDE
    Conséquence, le fichier ini original des sources est systématiquement recopié dans le répertoire d’exécution au lancement, écrasant celui qui a été modifié précédemment.

    J'ai bon ?
    Lol pas du tout !

    Ce comportement est lié à l'event ValueChanged du contrôle NumericUpDown

  5. #5
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    Comme ça pas du tout, c'est pourtant une erreur classique et très courante.
    Même moi, pourtant avec des années d'expériences, j'arrive encore à me faire piéger (pas bien longtemps, certe)
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  6. #6
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par sevyc64 Voir le message
    Comme ça pas du tout, c'est pourtant une erreur classique et très courante.
    Même moi, pourtant avec des années d'expériences, j'arrive encore à me faire piéger (pas bien longtemps, certe)
    Il n'enregistre pas son fichier dans son environnement debug ou release mais à cet emplacement :

    Donc aucun problème de fichier écrasé

  7. #7
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    ok, 1-0 balle au centre!
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  8. #8
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par sevyc64 Voir le message
    ok, 1-0 balle au centre!
    .euh....mais....personne n'a sifflé le début du match...o_O
    Ca va se terminer au comptoir cette histoire

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Astronome amateur
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Astronome amateur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Merci d'avoir pris le temps de regarder mon problème.


    Je confirme le point marqué par Wallace1.


    Problème résolu.


    Franck

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

Discussions similaires

  1. [AC-2007] Comment choisir mon fichier .ini au lancement de mon application ?
    Par dumas.blr dans le forum VBA Access
    Réponses: 20
    Dernier message: 03/02/2013, 21h05
  2. [WD17] Problème de dll au lancement de l'application
    Par lololebricoleur dans le forum WinDev
    Réponses: 3
    Dernier message: 15/02/2012, 13h34
  3. Problème fichier ini.
    Par youhibadelphi dans le forum Débuter
    Réponses: 19
    Dernier message: 18/03/2010, 11h07
  4. Fichier .ini/paramétrage d'application java par l'user
    Par devjav dans le forum Général Java
    Réponses: 14
    Dernier message: 30/03/2006, 16h31
  5. Problème d'identificateur fichier ini
    Par yanba dans le forum Langage
    Réponses: 7
    Dernier message: 19/02/2006, 00h21

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