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 :

Manipuler une collection!


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
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut Manipuler une collection!
    Bonjour,

    J'ai une collection. Je voudrais changer des valeur et les remplacer au même endroit; comment faut-il faire?

    Merci d'avance.

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Par défaut
    Bonjour,

    Le concept de collection en Visual basic [6] est un mix entre la stack (LIFO) et la liste chaînée que nous connaissons tous.

    La collection gère chaque élément par défaut avec un index numérique, depuis 0 jusqu'à ubound(collection), tandis que tu peux également lui spécifier un index alphanumérique.

    Cela permet notamment d'accéder aux éléments de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mavaleur = collection(cléalpha)
    mavaleur = collection.item(cléalpha)
    Ceci retournant une erreur si l'index demandé n'existe pas.

    De même, il est possible d'éliminer ou d'ajouter les éléments par leur clé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    collection.remove(cléalpha)
    collection.item(cléalpha) = mavaleur
    Tu vois donc qu'il est aisé de simuler un ordre dans une collection tel que tu l'envisages, même si elle n'est pas du tout faite pour cela. En effet, lorsqu'on utilise les tableaux, il est aisé de s'imaginer le même type de fonctionnement lorsqu'on passe aux collections alors qu'elles sont fondamentalement différentes.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    peut-on avoir la clé pour une valeur donnée

  4. #4
    Membre éclairé
    Inscrit en
    Septembre 2003
    Messages
    391
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 391
    Par défaut
    Citation Envoyé par toutounesan Voir le message
    peut-on avoir la clé pour une valeur donnée
    tu fais une boucle for qui parcoure toutes les valeurs de la collection (lecture par l'indice donc) jusqu'a ce que tu tombe sur la valeur recherchée.

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Par défaut
    Citation Envoyé par toutounesan Voir le message
    peut-on avoir la clé pour une valeur donnée
    Malheureusement non, c'est là un des seuls inconvénients de cette classe (hors performances)

    Pour trouver la parade, utilise un object Dictionary fourni dans VB.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    je voudrais changer une valeur d'une collection avec une nouvelle valeur mais à la même place.

    Comment faire svp


    Il y a index, remove....je suis perdu....

  7. #7
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Par défaut
    si dans ta collection, tu as un élément x tel que maCol.item(i) = x
    et que tu souhaites le remplacer par y, alors il faut faire maCol.item(i) = y.

    Si tu n'as pas i, tu ne peux pas et ne pourras pas le faire (impossible de reverser les clés d'une collection à ma connaissance)

Discussions similaires

  1. Déclarer et manipuler une collection de controles
    Par Lincoln911 dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/04/2010, 14h23
  2. [VB6]Valeurs une collection renvoyée par la fonction d'une classe
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 30/03/2004, 11h04
  3. [VB6] Sauvegarder une collection d'objets
    Par Sayagh dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 19/09/2003, 11h58
  4. Comment créér une collection sous Delphi
    Par PsyKroPack dans le forum Langage
    Réponses: 6
    Dernier message: 11/02/2003, 13h20
  5. [VB6] Modifier la clé d'un élément d'une collection
    Par Ricou13 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/11/2002, 14h49

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