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 :

nbre max d'item dans Collection


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 86
    Points : 47
    Points
    47
    Par défaut nbre max d'item dans Collection
    Bonjour a tous,
    J'ai deux questions :
    1- est-ce que vous confirmez que le nombre d'item d'une collection est de 256 item.?...
    2- est il possible de specifier la taille maximale d'une collection dans le paramétrage ?

    Merci par avance de votre réponse....

  2. #2
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Citation Envoyé par didoboy Voir le message
    Bonjour a tous,
    J'ai deux questions :
    1- est-ce que vous confirmez que le nombre d'item d'une collection est de 256 item.?...
    Non, plutôt lié à la mémoire disponible et au type de données stockées
    Citation Envoyé par didoboy Voir le message
    2- est il possible de specifier la taille maximale d'une collection dans le paramétrage ?

    Merci par avance de votre réponse....
    En conséquence, non

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 86
    Points : 47
    Points
    47
    Par défaut
    merci Dark Vader

    Non, plutôt lié à la mémoire disponible et au type de données stockées
    ...est il possible d'avoir une précision sur cette réponse.?..
    si par exemple j'ai crée 3 classe....class1 class 2 class 3....
    chacune des classes a des int, des string,...
    pour quelle raison ne puis je pas avoir plur de 256 item.?...
    peux tu me donner plus d'info..ou un lien, un sujet.qui traite de cela.?...
    Merci par avance..

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    On peut avoir plusieurs milliers d'objets en mémoire. Cette limitation à 256 objets n'existe pas.
    Montre nous un peu de ton code qui genere l'erreur
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 86
    Points : 47
    Points
    47
    Par défaut
    bonjour delbeke, merci pour ton post....
    un exemple de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
        nb1 = Timer
     
        Call gpblnNextPTCSearchWithRecur(iobjCollection, ilngX, ilngY)
        nb2 = Timer
        totalptc = totalptc + (nb2 - nb1)
        result = "temps ptc search" + CStr(nb2 - nb1)
        collectemps.Add result
    collectemps est une collection globale au module..en public.

    c'est une collection qui add les différents temps d'exé....
    gpblnNextPTCSearchWithRecur est une sub recursive..( il y en a d'autre)....


    le add de collectemps se fait mais 256 plus rien...
    si par exemple je fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    for intnb=0 to 1230
    collectemps.add "titi"
    next int nb
    il n'y aura que 256 item dans la collection....

    du coup j'ai cassé preque toute mes collections et les ais remplacé par des tableaux....et je me passe avec regret des for each..

    si vous avez une idée...suis preneur....
    j'ai lu sur d'autre post des comportement similaires ' 256 item max...
    merci de vos contris, vos opinions.

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Ton code exemple n'est pas fonctionnel ... tu la vraiment exécuté ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim nb As Integer
    Dim collectemps As New Collection
    For nb = 0 To 1230
    collectemps.Add "titi"
    Next
    MsgBox collectemps.Count

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 86
    Points : 47
    Points
    47
    Par défaut
    oui il s'execute....les declarations ne sont pas mis..mais oui...
    je ne fais pas de msgbox..je parcours les objet en debug....
    vous avez une idée.?...du pourquoi de cette limitation de 256.?...
    256..ce n'est pas non plus un chiffre du hasard..mais bien une limitation informatique...

  8. #8
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par didoboy Voir le message
    je parcours les objet en debug....
    comment ?
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  9. #9
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Avec aussi peu d'information, il faudrait être devin pour trouver l'erreur
    d'autant que, comme on l'a déjà dit, la limitation n'est pas liée à l'objet collection.

    Tu évoques une fonction récursive :
    je serais tenté de penser que la limitation du nombre d'imbrications est la même
    que celle concernant le nombre d'instructions conditionnelles imbriquées :
    de mémoire, il me semble avoir lu quelque part que le nombre maximum d'imbrications était 256 !!!
    C'est un nombre que je n'ai jamais eu à vérifier (de près comme de loin),
    je ne pourrais donc confirmer (comme la plupart de ceux essayant de coder proprement)

  10. #10
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par didoboy Voir le message
    oui il s'execute...

    ????

    je crois pas moi , cela c'est quoi :

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 86
    Points : 47
    Points
    47
    Par défaut
    Merci de vos réponses...
    ThierryAIM : j'utilise la fenetre watch des objets..en debugpour parcourir mes tableaux et autres variables..
    DarkVader : heu
    je ne pourrais donc confirmer (comme la plupart de ceux essayant de coder proprement)
    je ne sais pas bien ce que cela vient faire la mais bon.....il se trouve que je n'ai pas le choix, il me faut utiliser des sub recursive car pas de limitation d'index me permettant de faire de simple boucle.....
    et avec cela..les traitements sont un peu compliqués ( en algo)..alors soit je fais une sub de 600 lignes..soit je la découpe en plusieurs sub...( ce que je fait pour facilité la maintenance)....
    je ne peux pas mettre tous le code en ligne...
    j'ai ce type d'architecture..( je code directement pour l'exemple)
    c'est lors du watch de la collection des temps ( optimisation des perf de la version ) que l'interrogation du nombre d'item max d'une collection est apparue.

    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
     
     
    public sub lancement()
    'timer pour optimisation des perf
    nb1 = Timer
    call parcour
    nb2 = Timer
    totalptc = totalptc + (nb2 - nb1)
    result = "temps ptc search" + CStr(nb2 - nb1)
    collectemps.Add result
     
    end sub
     
    public sub parcour()
     
    'condition...
    for intnb=0 to ubound(tableau)
    call recur1()
    next intnb
     
    end sub
     
    public sub recur1()
     
    'traitement....
    'condition d'appel recur
     
    end sub
    nombre d'imbrication maximum..?...des appels aux sub tu veux dire.?...mais en quoi cela impacterai le nbre d'item d'une collection qui est postérieure aux traitements?..

  12. #12
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    C'est du second degré - j'entends par là que quand on s'embarque dans des imbrications complexes
    on doit en contrôler les bornes limites.

    Tu parles de fonctions récursives (dont je rappelle la définition des fois qu'on ne parle pas de la même chose)
    Fonction récursive : fonction qui s'appelle elle-même à l'intérieur de son propre code.
    ex:
    Function myRecur()
    if myCond then
    myRecur=... ' Dernier appel
    else
    myRecur=myRecur()
    endif
    end function
    Est-ce bien de cela que tu parles, car le nombre d'appel imbriqué ne peut être infini (cela parait évident)
    et tu ne montres en rien un code de fonction récursive ?

  13. #13
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par didoboy Voir le message
    ThierryAIM : j'utilise la fenetre watch des objets..en debugpour parcourir mes tableaux et autres variables..
    C'est bien ce qu'il me semblait

    Tiens un petit test à faire dans un projet vide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Form_Load()
    Dim collectemps As New Collection
    Dim nb As Integer
        For nb = 0 To 1230
            collectemps.Add "titi" & nb
        Next
        For nb = 1 To collectemps.Count
    Debug.Print  collectemps.Item(nb)
        Next
    End Sub
    tu mets un point d'arret sur le End Sub et tu regardes dans la fenêtre d'exécution et dans la fenetre Watch le contenu de la collection

    VB6 est très espiègle parfois ...
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 86
    Points : 47
    Points
    47
    Par défaut
    merci encore pour vons contrib
    DarkVader : oups..je suis allé un peu vite..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public sub recur1()
     
    'traitement....
    'condition d'appel recur
    call recur1 
    end sub
    oui oui nous parlons de la meme chose..procédure recursive quoi.....

    Thierry : merci...si je fais ce que tu indiques : j'obtiens un affichage
    titi1032
    .
    .
    .
    .
    titi1230
    la réponse était la : un "bug" de visual studio..dans l'affichage..
    comme quoi, le watch est a utiliser avec doigté
    2 question subsidiaires :
    1- pourquoi affiche t il que 1230-1032 soit 198 item dans ce cas la.?..( parametrage du debug.print.?)...
    2- maintenant que j'ai viré la moitie des collections de mon code ( et oui je sais ah bravo..)...puis je me consoler en disant que les tableaux sont plus rapide que les collections lorsqu'on les parcours.?

    le post est résolu semble til..(je fais 2-test..tout de meme)....je poursuis juste avec ces questions relatives elles aussi aux collections.

  15. #15
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Bonjour Thierry,
    Je viens de découvrir !
    Je n'utilise quasiment jamais cette fenêtre alors que quotidiennement j'utilise la fenêtre d'exécution -
    cela me conforte ...
    Généralement quand on constate une erreur spécifique en 256, 65536 etc., c'est une limitation liée à VB et j'étais parti flâner dans les champs.
    A ma décharge, le temps prête à être bucolique ...

  16. #16
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par DarkVader Voir le message
    Je n'utilise quasiment jamais cette fenêtre alors que quotidiennement j'utilise la fenêtre d'exécution -
    moi aussi et pour cause ...
    Citation Envoyé par DarkVader Voir le message
    Généralement quand on constate une erreur spécifique en 256, 65536 etc., c'est une limitation liée à VB :
    Vi, m'en doutais d'ou ma question
    comment ?
    un seul mot mais qui fait la différence
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  17. #17
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Citation Envoyé par didoboy Voir le message
    .../...
    2 question subsidiaires :
    1- pourquoi affiche t il que 1230-1032 soit 198 item dans ce cas la.?..( parametrage du debug.print.?)...
    C'est le nombre de lignes max que la fenêtre peut afficher.
    Citation Envoyé par didoboy Voir le message
    2- maintenant que j'ai viré la moitie des collections de mon code ( et oui je sais ah bravo..)...puis je me consoler en disant que les tableaux sont plus rapide que les collections lorsqu'on les parcours.?
    .../...
    Y a pas photo effectivement mais cela dépend aussi de ce qu'on veut faire.

  18. #18
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Citation Envoyé par ThierryAIM
    Vi, m'en doutais d'ou ma question

    comment ?
    un seul mot mais qui fait la différence
    A part les connaître, si tu as une solution, il y a surement pas mal de preneurs.

  19. #19
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Faut remettre dans le contexte
    Citation Envoyé par ThierryAIM Voir le message
    Citation Envoyé par didoboy Voir le message
    je parcours les objet en debug....
    comment ?
    Si après, j'avais la science infuse pour résoudre les problèmes avec un seul mot, ce forum serait un paradis
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 86
    Points : 47
    Points
    47
    Par défaut
    Mr ThierryAIM, mr Darkvader,
    merci encore pour vos contribs...
    en résumé : si vous pensez que votre collection a une limitation d'item, un nombre max d'item...vérifier bien que ce ne soit pas une limitation de votre environnement de dév..

    Merci encore a vous deux.
    Post Résolu.

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 26/01/2009, 09h22
  2. [TALC] autoriser un nbre max de fichier dans l'editeur
    Par delas dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 04/05/2006, 11h38
  3. [système] Comment ajouter un item dans le context menu de Windows ?
    Par ddmicrolog dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 29/06/2005, 17h03
  4. Réponses: 2
    Dernier message: 17/08/2003, 20h07
  5. [VB6] [Interface] Nbre de contrôles maxi dans une feuille
    Par Midou dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 13/10/2002, 16h09

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