philippe laschweng 1
Messages postés278Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention13 avril 2013
-
11 août 2005 à 09:28
philippe laschweng 1
Messages postés278Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention13 avril 2013
-
11 août 2005 à 11:40
Bonjour,
Une question toute simple:
J'ai un tableau que je déclare au départ sans lui fixer de dimension (utilisation de la fonction Split). J'aimerais savoir comment connaître le nombre d'éléments du tableau lorsque l'on ne lui déclare pas de dimension ???
mrdep1978
Messages postés402Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention 7 juin 20097 11 août 2005 à 09:46
Salut,
Il faut utiliser la fonction Ubound qui renvoie le numéro du dernier indice utilisé du tableau :
var = "ab;cd;ef"
tab = split(var,";")
count=ubound(tab) + 1 'car le tableau de n éléments va de 0 à n-1, donc ubound renvoie n-1
> count 3
mrdep1978
Messages postés402Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention 7 juin 20097 11 août 2005 à 10:50
Tu dois d'abord faire une boucle pour décaler tous tes éléments
l_Tab(4)=l_Tab(5)
l_Tab(5)=l_Tab(6) ....
Ensuite pour supprimer le dernier élément il faut utiliser
ReDim Preserve l_Tab(UBound(l_Tab) - 1)
Ce qui signifie :
ReDim : redimensionne le tableau
Preserve : en conservant les données déjà existantes
l_Tab(UBound(l_Tab) - 1) : à son indice le plus grand -1
Cette manipulation n'est possible que si tu déclares ton tableau dynamiquement (ce qui est déjà nécessaire pour utiliser la fonction Split)
<STRIKE>Dim l_tab(5) as String </STRIKE>-> Dim l_tab() as String
philippe laschweng 1
Messages postés278Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention13 avril 20132 11 août 2005 à 11:40
Bah si elle esxiste je la connais pas mais je me suis débrouillé avec du code :
If (InStr(1, LblChaine.Caption, "-") <> 0) Then
tableau = Split(CStr(LblChaine.Caption), "-")
tableau2 = tableau
For i = 0 To UBound(tableau)
If (tableau(i) = Mid(List2, 1, InStr(1, List2, "-") - 1)) Then
For j = i + 1 To UBound(tableau)
tableau2(j - 1) = tableau2(j)
Next j
ReDim Preserve tableau2(UBound(tableau) - 1)
End If
Next i
LblChaine.Caption = Join(tableau2, "-")
Else
LblChaine.Caption = ""
End If
List2.RemoveItem (List2.ListIndex)
List2.Refresh