Accueil > Forum > > > > Collections
Collections
samedi 22 novembre 2008 à 11:11:21 |
Collections

prince4878
|
Salut tout le monde, j'ai un petit souci a propos des collections avec VB6, cc'est que je ne sais pas vraiment pourquoi les utilise t-on. Pout quelqu'un m'expliquer le POURQUOI ?? Merci
|
|
samedi 22 novembre 2008 à 12:18:46 |
Re : Collections

ghuysmans99
|
On peut, par exemple, facilement énumérer des fichiers sans devoir définir un tableau de X éléments. Ce qui rend évidemment plus facile d'utilisation 
|
|
samedi 22 novembre 2008 à 16:14:44 |
Re : Collections

PCPT
|
salut,
l'utilisation la plus fréquente est en effet d'ajouter un élément (une chaine par exemple) comme dans un tableau, sans avoir à le redimensionner et donc à connaître ses limites.... dim c as new collection c.add "s1" c.add "s2" c.add "s3" ...
un autre intérêt est de pouvoir associer des clés à chaque valeurs c.add "s4", clef (voir F1)
aussi de pouvoir récupérer l'élément tant par sa position que sa valeur ou sa clé x = c.items(clef)
et de pouvoir jouer facilement avec d'autres instances de classes dim v as maclass for each v in c debug.? v.une_de_mes_proprietes next v
NB : la collection a donc beaucoup d'avantages, mais consomme énormément de ressources. il faut donc bien réfléchir à son utilité (dans le contexte) avant de commencer à coder... ++ Prenez un instant pour répondre à ce sondage svp
|
|
samedi 22 novembre 2008 à 21:12:05 |
Re : Collections

Orohena
|
Bonjour
Autre avantage, les membres d'une collection ne doivent pas nécessairement avoir le même type de données.
J'ai vu sur Internet une utilisation pratique de l'objet collection, comme dictionnaire de données pour la compression et la décompression d'images GIF.
Par exemple, pour reprendre l'exemple donné par PCPT, on peut chercher si le string clef est dans le dictionnaire par :
On Error Resume Next x = c.items(clef) ' est-ce que clef est dans le dictionnaire ? If Err <> 0 Then ... ' clef n'est pas dans le dictionnaire c.Add c.count + 257, clef ' ajoute clef dans le dictionnaire
Mais je pense pour ma part qu'il est souvent préférable d'écrire soi-même un algo de tri, pour les raisons de performances données par PCPT.
Cordialement
|
|
lundi 24 novembre 2008 à 01:56:35 |
Re : Collections

prince4878
|
Salut Merci beaucoups pour les explications de proffessionnels, maintenant c'est 1000 fois plus clair :P MAIS je vouderai savoir pour quel but utilise t-on cette technique pour les applications des BDD ? merci
|
|
lundi 24 novembre 2008 à 01:58:35 |
Re : Collections

prince4878
|
Oups, une autre question. donc si j'ai bien compris, cette technique ne sert qu'a creer des methods et des proprietes, et rien d'autre de plus ???
|
|
lundi 24 novembre 2008 à 03:20:19 |
Re : Collections

PCPT
|
Réponse acceptée !
salut,
non, pas pour "créer" des méthodes... éventuellement y donner accès, donc d'un autre objet. encore que comme indiqué, çà dépend du contexte...
quand on peut éviter de l'utiliser (la collection), on fait sans. si dans ton code le but est simplement et uniquement de... t'éviter de vérifier le ubound d'un tableau, alors c'est que la conception de ton code est à revoir.
si tu as besoin d'avoir 10 éléments, mais parfois 5 ou 15...., la collection n'a aucune utilité
si tu veux faire un usercontrol comme une listbox, alors la collection peut avoir certains avantages
exemple rapide (sans vérification ou presque, et sans accessoire...), tu veux pouvoir ajouter (et donc écrire) des lignes une à une, et pouvoir en supprimer, çà donnerait :
DANS UN USERCONTROL, PAR DéFAUT Option Explicit Dim oColl As New Collection Public Sub AddItem( ByVal sStr As String ) oColl.Add sStr Me.Refresh End Sub
Public Sub RemoveItem(ByVal Index As Integer) If (Index < 1) Or (Index > oColl.Count) Then Err.Raise vbInteger Or vbObjectError, , "l'Index indiqué n'existe pas" Else oColl.Remove Index Me.Refresh End If End Sub
Public Sub Clear() Do While oColl.Count oColl.Remove 1 Loop Me.Refresh End Sub
Public Sub Refresh() UserControl.Cls Dim v As Variant For Each v In oColl UserControl.Print CStr(v) Next v End Sub
Private Sub UserControl_Initialize() UserControl.BackColor = vbBlue UserControl.BorderStyle = vbBSSolid UserControl.FontName = "Courier New" UserControl.ForeColor = vbWhite End Sub
Private Sub UserControl_Terminate() Me.Clear Set oColl = Nothing End Sub

Coloration VB6, VBA, VBS DANS UNE FORM, PAR DéFAUT, POSE l'UC (nommé donc UserControl11) ET 2 BOUTONS Option Explicit Private Sub Form_Load() Command1.Caption = "ajoute heure" Command2.Caption = "supprime" End Sub
Private Sub Command1_Click() UserControl11.AddItem CStr(Time) End Sub
Private Sub Command2_Click() On Error Resume Next UserControl11.RemoveItem Val(InputBox("Saisissez le numéro de l'item à supprimer", , "1")) If Err.Number Then MsgBox Err.Number & " : " & Err.Description, vbExclamation, "Erreur du Usercontrol" End Sub Coloration VB6, VBA, VBS VISUELLEMENT POUR LES CURIEUX bref ce n'est qu'un exemple, ici il aurait été difficile de supprimer uniquement la ligne 3 d'un tableau. pas impossible bien sûr, mais dans ce cas précis, la collection est préférable (pour répondre à ta première question ^^)
c'est à force d'utilisation que tu sauras faire le choix "collection ou autre". en attendant si çà peut t'aider, décris-nous peut-être ton besoin...., on saura te dire comme t'en passer  ++ Prenez un instant pour répondre à ce sondage svp
|
|
lundi 24 novembre 2008 à 03:27:07 |
Re : Collections

PCPT
|
ps : pour une BDD, tu n'aurais pas besoin de collection.... ton RS t'en renvoie déjà une, celle des FIELDS. donc aucun besoin. et si tu voulais récupérer tous les enregistrements d'un champ par exemple, un tableau, redimentionné sur le recordcount, et rempli à la volée donc pas besoin de collection dans la majeure partie des cas ;) ++
|
|
mardi 25 novembre 2008 à 01:38:44 |
Re : Collections

prince4878
|
Salut bein PCPT, je ne sais vraiment pas quoi te dire apres avoir ( et vu -j'en fais partie-) merci beaucoup pout toutes ses explications Boncourage
|
|
Cette discussion est classée dans : collections
Répondre à ce message
Sujets en rapport avec ce message
collections [ par hegoak ]
comment faire une collection avec tous les fichiers d'un répertoire
URGENT !!! Problème de collections [ par ols ]
Etant habitué à la conception objet C++, un problème s'oppose à moi.Décor:J'ai définit un type d'objet TTypeVin à partir duquel j'ai fait une collecti
Collections en ASP [ par Muad-Dib ]
Salut tout le monde,J'ai créé une dll d'Apis dont l'une d'entre elle requiert une variable de type collection.Mon problème : je ne sais pas déclarer d
Collections dans contrôles ActiveX [ par Jon2001 ]
Salut,Je cherche désespérément à créer des collections de contrôles dans un autre contrôle.Exemple : Treeview (un contrôle) possède une collection de
detection erreurs-collections [ par neo3015 ]
voici le code : Dim newCh As New Chainon Dim tmpChs As Variant Dim saveChs As Variant newCh.dbTableName = dbTable newCh.dbVarName
Collections de classes en VB [ par aKheNathOn ]
J'ai codé une classe ayant des evenements, maintenant j'ai besoin de la dupliquer X fois, comme je le ferais avec un groupe de controles... seulement
Re : Impression [ par Geff ]
Apparement tu as oublié d'instancier un objet!genre :: System.Collections.ArrayList MyList= new System.Collections.ArrayList();c juste un exemple mais
Stockage objet dans BdD [ par leludo ]
Bonjour,Je suis débutant en VB6 et n'ai pas une grande expérience des BdD et je voudrais stocker des objets dans une base de données pour pouvoir ensu
Livres en rapport
|
Derniers Blogs
[HTML5] SLIDES ET DéMOS : AUTOUR DU W3C , NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] SLIDES ET DéMOS : AUTOUR DU W3C , NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Très bonne après-midi passée lors cette conférence avec le W3C, organisée par L' Inria sur les nouveaux standards, ce Mardi 14 Février, on sent vraiment que çà bosse chez eux, et l'avenir est très très prometteur pour le HTML5, notammen...
Cliquez pour lire la suite de l'article par Gio GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc
Forum
RE : VITESSERE : VITESSE par Renfield
Cliquez pour lire la suite par Renfield RE : VITESSERE : VITESSE par ucfoutu
Cliquez pour lire la suite par ucfoutu MACRO VBA EXCELMACRO VBA EXCEL par sigma17
Cliquez pour lire la suite par sigma17
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|