Page 1 sur 2
Liste Imbriqué

Publié:
04 Déc 2009 à 13:08
par Michael DELIQUE
Bonjour
je "m'amuse" a imbriquer des liste histoire de faire des listes a plusieurs dimensions. le probleme c'est pour la récupération des infos pour la acceder a la list dans la liste je suis obligé de passé par un variant
un code d'exemple
- Code : Tout sélectionner
Dim lst List As Variant
Dim lst1 List As String
Dim vrvalue As Variant
Dim i As Integer
Dim j As Integer
For i = 1 To 100
lst1(i) = "iiiiiiiiiiiiiiiiiiiiii"
Next
For j = 1 To 10
lst(j) = lst1
Next
vrvalue = lst(2)
Msgbox Cstr(vrvalue(2))
mais j'aimerais pouvoir le faire en une seule ligne
genre list(0)(0) bien sur ça marche pas !
quelqu'un a une idée ?

Publié:
04 Déc 2009 à 14:11
par AlexandreV
Pas sur que cela soit possible. En tout cas pas sans passer par un variant ou par un tableau.

Publié:
04 Déc 2009 à 14:20
par Michael DELIQUE
c'est bien ce que je suis en train de me dire, j'aurrai aimé eviter de passer par un tableau parceque avec bcp de donné c'est rapidement plein !

Publié:
04 Déc 2009 à 14:45
par Michael DELIQUE
mais si quelqu'un sait comment faire...

Publié:
04 Déc 2009 à 15:01
par AlexandreV
Avec des pointeurs en langage C...
Ok... je sors


Publié:
04 Déc 2009 à 15:05
par Michael DELIQUE
SBAFFFF !

Publié:
07 Déc 2009 à 09:52
par abertisch
Salut,
en Java ?!? ou tu es limité au LS ?

Publié:
07 Déc 2009 à 10:12
par Michael DELIQUE
LS !
et pouquoi une liste et pas un array a cause du redim qui bouffe des ressource comme ç'est pas permit ! don c
j'essais de faire une list mutli-dimenssionné

Publié:
07 Déc 2009 à 10:21
par GPE
Pour faire cela j'utilise une liste d'un type contenant une ou plusieurs arrays.
Ce n'est pas parfait car non redimensionnable mais ça marche
Peut etre que ça peut aider.
Public Type DocXref
xLinksStatus(100) As String xLinksTitleStatus(100) As String
....
End Type
Public ListXrefErrorCarrier List As DocXref

Publié:
07 Déc 2009 à 12:29
par Michael DELIQUE
salut
tu récuperes tes valeurs comment ?

Publié:
07 Déc 2009 à 12:37
par GPE
par exemple
For i = 0 To ListXrefErrorCarrier(doc.NoteID).xNbLinks
' Get values from XrefDocCarrier
If ListXrefErrorCarrier(doc.NoteID).xLinksTitleStatus(i) = "Refresh" Then TitleRefreshed =True
J'utilise NoteId comme tag dans la liste.

Publié:
07 Déc 2009 à 12:44
par Michael DELIQUE
bon c'est lundi j'ai Le neurone en marmellade !
tu peut me montre un ocde d'exemple, j'ai du mal a te suivre !

Publié:
07 Déc 2009 à 12:59
par GPE
Difficile d'envoyer la totalité, c'est un ensemble de fonctions qui utilisent ce principe.
Declaration
Public Type DocXref
xNbLinks As Integer
xLinksStatus(100) As String
xLinksTitleStatus(100) As String
xLinksNumberStatus(100) As String
xLinksCurrent(100) As String
xLinksRevised(100) As String
End Type
Public ListXrefErrorCarrier List As DocXref
Set List Item
ListXrefErrorCarrier(doc.NoteID).xNbLinks = IndexDocLink
ListXrefErrorCarrier(doc.NoteID).xLinksStatus(IndexDocLink) = "Remove"
ListXrefErrorCarrier(doc.NoteID).xLinksTitleStatus(IndexDocLink) = "Refresh"
ListXrefErrorCarrier(doc.NoteID).xLinksCurrent(IndexDocLink) = D
ListXrefErrorCarrier(doc.NoteID).xLinksRevised(IndexDocLink) = D
Get Item List
For i = 0 To Cint(ListXrefErrorCarrier(Doc.NoteID).xNbLinks)
xLinksStatus(i) = ListXrefErrorCarrier(Doc.NoteID).xLinksStatus(i)
xLinksCurrent(i) = ListXrefErrorCarrier(Doc.NoteID).xLinksCurrent(i)
xLinksRevised(i) = ListXrefErrorCarrier(Doc.NoteID).xLinksRevised(i)
xLinksTitleStatus (i) = ListXrefErrorCarrier(Doc.NoteID).xLinksTitleStatus(i)
xLinksNumberStatus(i) = ListXrefErrorCarrier(Doc.NoteID).xLinksNumberStatus(i)
Next

Publié:
07 Déc 2009 à 13:02
par Michael DELIQUE
ahhh oui comme ça
le probleme, c'est que le tableau est a taille variable !
vu que c'est al fonction qui va déterminer le nombre d'occurence necessaire pour la deuxieme dimension !

Publié:
07 Déc 2009 à 13:05
par GPE
C'est bien ce que je disais au début:
Ce n'est pas parfait car non redimensionnable
Donc j'ai fixé une limite "raisonnable"