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 6 et antérieur Discussion :

Sauvegarde contenus combobox


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Par défaut Sauvegarde contenus combobox
    Bonjour,

    j'ai dans mon programme 2 listbox a enregistrè a chaque fin de programme.

    j'ai donc "lstDefinition" et "lstMot"

    j'ai mis en place le code d'ecriture dans "Form/Terminate" et le code de lecture dans 1 Bouton

    je lance le programme, j'y insert des valeurs, je ferme, je vais voir mes 2 fichiers(lstDefinition.lst et lstMot.lst) deja je suis surpris car il sont vide(0Ko). je relance, chargement et la avec moins de surprise rien....

    le problème viens donc de l'écriture. je comprend le code et je vois pas d'ou pourrais provenir l'erreur...

    merci a vous

    PS: la diference est que j'utilise Write au lieu de Print et je n'ai pas utilise EOF(je sais pas a quoi il sert)

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Bonjour,

    EOF = End Of File.

    Voyons un peu de ce code !

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Par défaut
    code d'ecriture qui s'execute a la fermeture de l'unique feuille du programme

    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
    31
     
    Private Sub Form_Terminate()
    'Lecture du nombre d'objet dans les listes
    NbreDef = lstDef.ListCount
     
    'Sauvegarde des variables
    Open App.Path & "\" & "save.txt" For Append As #1
    Write #1, NFaute; NBien;
    Close #1
     
    'Sauvegarde de la liste de definition
    Open App.Path & "\" & "Definition.lst" For Append As #2
    Close #2
    Open App.Path & "\" & "Definition.lst" For Output As #2
    For i = 0 To lstDef.ListCount - 1
        lstDef.ListIndex = i
        Write #2, lstDef.Text
    Next
    Close #2
     
    'Sauvegarde de la liste de mot
    Open App.Path & "\" & "Mot.lst" For Append As #3
    Close #3
    Open App.Path & "\" & "Mot.lst" For Output As #3
    For i = 0 To lstMot.ListCount - 1
        lstMot.ListIndex = i
        Print #3, lstMot.Text
    Next
    Close #3
     
    End Sub
    code de lecture contenu pas 1 bouton de commande
    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
    Private Sub cmdChargement_Click()
    'Chargement des variables
    Open App.Path & "\" & "save.txt" For Input As #1
    Input #1, NFaute, NBien
    Close #1
     
    'Chargement de la liste de definition
    Open App.Path & "\" & "Definition.lst" For Input As #2
    For i = 0 To NbreDef - 1
        Input #2, Tempo$
        lstDef.AddItem (Tempo$)
    Next
    Close #2
     
    'Chargement de la liste de mot
    Open App.Path & "\" & "Mot.lst" For Input As #3
    For i = 0 To NbreDef - 1
        Input #3, Tempo$
        lstMot.AddItem (Tempo$)
    Next
    Close #3
     
    'Redistribution du focus
    If optTest.Value = True And optParam.Value = False Then
        txtRep.SetFocus
    ElseIf optParam.Value = True And optTest.Value = False Then
        txtMot.SetFocus
    End If
     
    End Sub

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Juste pour ne pas mourir idiot...

    Ca sert à quoi ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Open App.Path & "\" & "Definition.lst" For Append As #2
    Close #2
    juste avant le Open For Output?
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Par défaut
    A la 1er exection les fichiers de sauvegarde n'existe pas
    OutPut ne fait que de l'écriture et Append crèè si le fichier n'existe pas

    1er execution:
    ouverture lecture seul et creation
    fermeture
    ouverture en ecriture seul

    N-iéme execution:
    ouverture lecture seul
    fermeture
    ouverture en ecriture seul

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Un Open For Output crée le fichier s'il n'existe pas...

    Edit: Et pas seulement s'il n'existe pas.
    Merci delbeke de m'avoir corrigé.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  7. #7
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    Nan, c'est pas comme çà que ca marche
    L'ouverture en OutPut écrase le fichier s'il existe déjà et en crée un nouveau
    L'ouverture en Append ouvre un fichier existant ou en cree un nouveau s'il n'existe pas. Les ecritures dans le fichier se feront apres la fin du fichier existant.
    Donc, dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    'Sauvegarde de la liste de definition
    Open App.Path & "\" & "Definition.lst" For Append As #2
    Close #2
    Open App.Path & "\" & "Definition.lst" For Output As #2
    For i = 0 To lstDef.ListCount - 1
        lstDef.ListIndex = i
        Write #2, lstDef.Text
    Next
    Close #2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Open App.Path & "\" & "Definition.lst" For Append As #2
    Close #2
    ne sert strictement à rien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Open App.Path & "\" & "Definition.lst" For Output As #2
    Ecrase le fichier App.Path & "\" & "Definition.lst" et en recréée un nouveau completement vide.

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

Discussions similaires

  1. [XL-2003] Sauvegarder ComboBox AddItem
    Par avyrex dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/07/2009, 17h45
  2. [PPT-2007] Insérer un combobox, sauvegarder la valeur choisie
    Par Aiacciu dans le forum VBA PowerPoint
    Réponses: 2
    Dernier message: 12/07/2009, 22h00
  3. Réponses: 0
    Dernier message: 08/01/2009, 22h57
  4. sauvegarder les items d'un combobox
    Par pierrot67 dans le forum Delphi
    Réponses: 2
    Dernier message: 25/07/2007, 18h52

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