OVH Cloud OVH Cloud

Collection, ascii

3 réponses
Avatar
Jacquelin Hardy
J'obtiens une erreur avec le code suivant : Pourquoi ?

Private Sub Form_Load()

Dim table as Collection
Dim stream as String, bits
Dim Data as String

' Construire une table
Set table = New Collection
Table.add "1000001", "A"
Table.add "1100001", "a"
'
'
'etc
End Sub

Vb6 m'arrête sur <Table.add "1100001", "a"> en disant:
This key is already associated with an element of this collection".

Est-ce que VB6 arrête de compter après 63, ou ignore-t-il les lettres
majuscules - minuscules ?

Merci

Jacquelin Hardy

3 réponses

Avatar
jm
"Jacquelin Hardy" wrote in message
news:%
J'obtiens une erreur avec le code suivant : Pourquoi ?

Private Sub Form_Load()

Dim table as Collection
Dim stream as String, bits
Dim Data as String

' Construire une table
Set table = New Collection
Table.add "1000001", "A"
Table.add "1100001", "a"
'
'
'etc
End Sub

Vb6 m'arrête sur <Table.add "1100001", "a"> en disant:
This key is already associated with an element of this collection".

Est-ce que VB6 arrête de compter après 63, ou ignore-t-il les lettres
majuscules - minuscules ?



Hello,

Sois le programme suivant:

Private Sub Form_Load()
Dim table as Collection

' Construire une table
Set table = New Collection
Table.add "1000001", "A"
Table.add "1100001", "B"
End Sub

1) Faire tourner ce programme
2) constater qu'il ne se plaint pas
3) en tirer une conclusion

Note: la documentation spécifie que la clé (optionelle) doit être unique,
mais ne mentionne pas le fait que la comparaison est case insensitive.

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
Avatar
Guy DETIENNE
Salut ;O)

Comme le dit JM, une collection semble ne pas différencier un A mujuscule
d'un a minuscule. Je ne le savais pas !

S'il te fallait absolument utiliser A et a comme clé, tu pourrais simuler en
entrant leur code ASCII comme clé.
Du style :

table.Add "1000001", CStr(Asc("A")) 'soit la clé 65
table.Add "1100001", CStr(Asc("a")) ' soit la clé 97

Mais cela doit devenir un convention à l'intérieure de ta collection.
Et pour faire une recherche, tu transformes à la volée la clé en code ASCII.
Enfin, ce n'est qu'une piste de réflexion.

Ceci dit, il existe des collections fabriquées de toute pièce que l'on peut
trouver sur le net et qui sont bien plus pratiques et puissantes que celles
présentes dans VB. Fais une recherche sur Google.

Guy

"Jacquelin Hardy" a écrit dans le message de news:
%
J'obtiens une erreur avec le code suivant : Pourquoi ?

Private Sub Form_Load()

Dim table as Collection
Dim stream as String, bits
Dim Data as String

' Construire une table
Set table = New Collection
Table.add "1000001", "A"
Table.add "1100001", "a"
'
'
'etc
End Sub

Vb6 m'arrête sur <Table.add "1100001", "a"> en disant:
This key is already associated with an element of this collection".

Est-ce que VB6 arrête de compter après 63, ou ignore-t-il les lettres
majuscules - minuscules ?

Merci

Jacquelin Hardy


Avatar
Jacquelin Hardy
Merci Guy,
> Mais cela doit devenir un convention à l'intérieure de ta collection.
> Et pour faire une recherche, tu transformes à la volée la clé en code
ASCII.

C'est ce que j'ai fait.

JH

Guy DETIENNE a écrit :
Salut ;O)

Comme le dit JM, une collection semble ne pas différencier un A mujuscule
d'un a minuscule. Je ne le savais pas !

S'il te fallait absolument utiliser A et a comme clé, tu pourrais simuler en
entrant leur code ASCII comme clé.
Du style :

table.Add "1000001", CStr(Asc("A")) 'soit la clé 65
table.Add "1100001", CStr(Asc("a")) ' soit la clé 97

Mais cela doit devenir un convention à l'intérieure de ta collection.
Et pour faire une recherche, tu transformes à la volée la clé en code ASCII.
Enfin, ce n'est qu'une piste de réflexion.

Ceci dit, il existe des collections fabriquées de toute pièce que l'on peut
trouver sur le net et qui sont bien plus pratiques et puissantes que celles
présentes dans VB. Fais une recherche sur Google.

Guy

"Jacquelin Hardy" a écrit dans le message de news:
%
J'obtiens une erreur avec le code suivant : Pourquoi ?