Est ce qu'un tableau avec un type utilisateur conviendrait? Quelque chose comme:
Type monType v1 As String v2 As String v3 As Long End Type
puis un tableau de ce type: Dim monTableau(10) as mon TYpe
monTableau(1).v1 = "line1" monTableau(1).v2 = "test" MonTableau(1).v3 = 5 ' .. monTableau(2).v1 = "line2" monTableau(2).v2 = "good" ' etc. -- Jean-marc "There are only 10 kind of people those who understand binary and those who don't."
"Maileen" <nospam@email.com> a écrit dans le message de
news:%23YAYhCK1EHA.2876@TK2MSFTNGP12.phx.gbl...
Bonjour,
J'aimerai sauvegarder dans un conteneur plusieurs valeurs, un peu comme
en C++, dans un vecteur.
en VB.NET, array semble uniquement pour des valeurs de meme type.
Je n'ai rien lu sur les stringlist comme en C++.
Par consequent, comment puis-je stocker les valeurs suivantes :
Est ce qu'un tableau avec un type utilisateur conviendrait?
Quelque chose comme:
Type monType
v1 As String
v2 As String
v3 As Long
End Type
puis un tableau de ce type:
Dim monTableau(10) as mon TYpe
monTableau(1).v1 = "line1"
monTableau(1).v2 = "test"
MonTableau(1).v3 = 5
' ..
monTableau(2).v1 = "line2"
monTableau(2).v2 = "good"
' etc.
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Est ce qu'un tableau avec un type utilisateur conviendrait? Quelque chose comme:
Type monType v1 As String v2 As String v3 As Long End Type
puis un tableau de ce type: Dim monTableau(10) as mon TYpe
monTableau(1).v1 = "line1" monTableau(1).v2 = "test" MonTableau(1).v3 = 5 ' .. monTableau(2).v1 = "line2" monTableau(2).v2 = "good" ' etc. -- Jean-marc "There are only 10 kind of people those who understand binary and those who don't."
ng
Salut,
Dans un Collection ou une Collecion fortement typée (en .Net il suffit de faire une classe dérivant de CollectionBase).
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Maileen wrote:
Bonjour,
J'aimerai sauvegarder dans un conteneur plusieurs valeurs, un peu comme en C++, dans un vecteur.
en VB.NET, array semble uniquement pour des valeurs de meme type. Je n'ai rien lu sur les stringlist comme en C++.
Par consequent, comment puis-je stocker les valeurs suivantes :
Dans un Collection ou une Collecion fortement typée (en .Net il suffit de
faire une classe dérivant de CollectionBase).
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Maileen wrote:
Bonjour,
J'aimerai sauvegarder dans un conteneur plusieurs valeurs, un peu
comme en C++, dans un vecteur.
en VB.NET, array semble uniquement pour des valeurs de meme type.
Je n'ai rien lu sur les stringlist comme en C++.
Par consequent, comment puis-je stocker les valeurs suivantes :
Dans un Collection ou une Collecion fortement typée (en .Net il suffit de faire une classe dérivant de CollectionBase).
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Maileen wrote:
Bonjour,
J'aimerai sauvegarder dans un conteneur plusieurs valeurs, un peu comme en C++, dans un vecteur.
en VB.NET, array semble uniquement pour des valeurs de meme type. Je n'ai rien lu sur les stringlist comme en C++.
Par consequent, comment puis-je stocker les valeurs suivantes :
Private mLineNumber As String Private mValue As String Private mIndex As Long
Public Property Get LineNumber() As String
LineNumber = mLineNumber
End Property
Public Property Let LineNumber(ByVal LineNumber As String)
mLineNumber = LineNumber
End Property
Public Property Get LineNumber() As String
LineNumber = mValue
End Property
Public Property Let LineNumber(ByVal LineNumber As String)
mValue = LineNumber
End Property
Public Property Get Index() As Long
Index = mIndex
End Property
Public Property Let Index(ByVal Index As Long)
mIndex = Index
End Property '***************************************** ' Listeclass1 '****************************************** Option Explicit
Private m_col As Collection
'****************************
Public Function Add(p As Class1) As Class1
Call m_col.Add(p, Str(p.Index))
End Function Public Function Item(ByRef v As Variant) As Class1 Set Item = m_col.Item(v) End Function
Public Function Count() As Long Count = m_col.Count End Function
Public Sub Delete(ByVal v As Variant)
Call m_col.Remove(v) End Sub Public Function NewEnum() As IEnumVARIANT Set NewEnum = m_col.[_NewEnum] End Function
Private Sub Class_Initialize() Set m_col = New Collection End Sub
Private Sub Class_Terminate() Set m_col = Nothing End Sub
ng
Salut,
Il me seble qu'il parlait bien de dotNet c'est pour ca que je parle de dériver CollectionBase.
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
christophe-pasde<> @wanadoo.fr>" < wrote:
Bonjour,
Et en VB6 une nouvelle Interface de l'objet collection.
Ceci dit pour être un peu plus précis et pour répondre à la question posée. Créer une classe: Class1 Une autre classe, collection de d'objet class1 que l'on nomme ListeClass1
Ne pas oublier de regler les attributs de la procédure new_enum avec id_procedure=-4 et "masqué ce membre" coché. Pour Item: ID_Proc = (par defaut).
Ci-dessous un exemple non testé.
Ensuite dans le codegénéral tu utilises le "conteneur" comme ceci
pour un objet ListeClass1: MyListe
'... Traitement du lot
Dim p as class1
for each p in Mylist
[....]
end p
' Un class1 particulier
Set p = Mylist(" 2") ' Renvoi l'objet class1 dont la clef (str(p.id)) est " 2" 'Provoque une erreur récupérable si la clef n'existe pas.
Private mLineNumber As String Private mValue As String Private mIndex As Long
Public Property Get LineNumber() As String
LineNumber = mLineNumber
End Property
Public Property Let LineNumber(ByVal LineNumber As String)
mLineNumber = LineNumber
End Property
Public Property Get LineNumber() As String
LineNumber = mValue
End Property
Public Property Let LineNumber(ByVal LineNumber As String)
mValue = LineNumber
End Property
Public Property Get Index() As Long
Index = mIndex
End Property
Public Property Let Index(ByVal Index As Long)
mIndex = Index
End Property '***************************************** ' Listeclass1 '****************************************** Option Explicit
Private m_col As Collection
'****************************
Public Function Add(p As Class1) As Class1
Call m_col.Add(p, Str(p.Index))
End Function Public Function Item(ByRef v As Variant) As Class1 Set Item = m_col.Item(v) End Function
Public Function Count() As Long Count = m_col.Count End Function
Public Sub Delete(ByVal v As Variant)
Call m_col.Remove(v) End Sub Public Function NewEnum() As IEnumVARIANT Set NewEnum = m_col.[_NewEnum] End Function
Private Sub Class_Initialize() Set m_col = New Collection End Sub
Private Sub Class_Terminate() Set m_col = Nothing End Sub
Salut,
Il me seble qu'il parlait bien de dotNet c'est pour ca que je parle de
dériver CollectionBase.
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
christophe-pasde<> @wanadoo.fr>" < wrote:
Bonjour,
Et en VB6 une nouvelle Interface de l'objet collection.
Ceci dit pour être un peu plus précis et pour répondre à la question
posée.
Créer une classe:
Class1
Une autre classe, collection de d'objet class1 que l'on nomme
ListeClass1
Ne pas oublier de regler les attributs de la procédure new_enum
avec id_procedure=-4 et "masqué ce membre" coché.
Pour Item: ID_Proc = (par defaut).
Ci-dessous un exemple non testé.
Ensuite dans le codegénéral tu utilises le "conteneur" comme ceci
pour un objet ListeClass1: MyListe
'... Traitement du lot
Dim p as class1
for each p in Mylist
[....]
end p
' Un class1 particulier
Set p = Mylist(" 2")
' Renvoi l'objet class1 dont la clef (str(p.id)) est " 2"
'Provoque une erreur récupérable si la clef n'existe pas.
Il me seble qu'il parlait bien de dotNet c'est pour ca que je parle de dériver CollectionBase.
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
christophe-pasde<> @wanadoo.fr>" < wrote:
Bonjour,
Et en VB6 une nouvelle Interface de l'objet collection.
Ceci dit pour être un peu plus précis et pour répondre à la question posée. Créer une classe: Class1 Une autre classe, collection de d'objet class1 que l'on nomme ListeClass1
Ne pas oublier de regler les attributs de la procédure new_enum avec id_procedure=-4 et "masqué ce membre" coché. Pour Item: ID_Proc = (par defaut).
Ci-dessous un exemple non testé.
Ensuite dans le codegénéral tu utilises le "conteneur" comme ceci
pour un objet ListeClass1: MyListe
'... Traitement du lot
Dim p as class1
for each p in Mylist
[....]
end p
' Un class1 particulier
Set p = Mylist(" 2") ' Renvoi l'objet class1 dont la clef (str(p.id)) est " 2" 'Provoque une erreur récupérable si la clef n'existe pas.