Comment compter le nombre d'élément dans un tableau commençant par une chaine sp

Résolu
cs_fabiano13
Messages postés
262
Date d'inscription
mardi 26 février 2002
Statut
Membre
Dernière intervention
27 février 2012
- 21 avril 2011 à 17:39
NHenry
Messages postés
14966
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
9 août 2022
- 21 avril 2011 à 22:59
Bonjour,

Comment compter le nombre d'élément dans un tableau commençant par une chaine spécifique ?

PS : si possible sans faire de boucle.

Du genre :


Private Function Montableau()
        Dim MaListe As New List(Of String)({"toto.jpg_aller", "toto.jpg_alli", "toto.jpg_allo", "toto.jpg_allu", "toti.jpg_aller", "toti.jpg_allero", "toti.jpg_aller", "toti.jpg_altler"})
        Return MaListe
    End Function


msgbox(Montableau.?????("toto.jpg_*"))

7 réponses

NHenry
Messages postés
14966
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
9 août 2022
161
21 avril 2011 à 19:09
Bonjour,

Dim lNb as Integer=0
For Each lStr As String In MaListe
if lStr.StartWith("MaChaine") Then lNb+=1
Next


Mon site
3
NHenry
Messages postés
14966
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
9 août 2022
161
21 avril 2011 à 20:05
Bonjour,

C'est un code qui parcours la liste, chaine par chaine.
Donc le StartWith fonctionnera.

Sinon, je ne vois pas comment faire.

Mon site
3
eccsup
Messages postés
76
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
2 août 2018

21 avril 2011 à 17:58
Utilise les regex:

regex.isMatch(taChaine,"toto.jpg_*")


Je suis pas sur mais il y a peut-etre meme une fonction qui fait exactement ce que tu veut : compter le nombre d'element
0
cs_fabiano13
Messages postés
262
Date d'inscription
mardi 26 février 2002
Statut
Membre
Dernière intervention
27 février 2012

21 avril 2011 à 18:37
Merci pour ton aide.

J'ai une erreur : La conversion du type List(Of String) en type String n'est pas valide.

Le but exacte de la manœuvre c'est la suivante :


Private Function MonTableau()
        Dim sTableau As New List(Of String)({"toto.jpg_1", "titi.jpg_1", "toto.jpg_2", "toto.jpg_3", "titi.jpg_2", "titi.jpg_3", "toto.jpg_4"})
        Return sTableau
    End Function


Dim DansCesItems As Object = System.Text.RegularExpressions.Regex.IsMatch(MonTableau1, "toto.jpg_*")


For each MaValeur in DansCesItems
msgbox(MaValeur)
Next

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_fabiano13
Messages postés
262
Date d'inscription
mardi 26 février 2002
Statut
Membre
Dernière intervention
27 février 2012

21 avril 2011 à 19:37
Merci pour m'aider.

Seulement StartWith ne marche pas avec une liste !

Il n'y a aucun moyen de le faire directement dans le in ?

J'ai pensé faire avec regex !

As-tu une idée ?

D'avance merci.
Fabiano
0
cs_fabiano13
Messages postés
262
Date d'inscription
mardi 26 février 2002
Statut
Membre
Dernière intervention
27 février 2012

21 avril 2011 à 21:45
Merci, ça marche super bien.

A+
0
NHenry
Messages postés
14966
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
9 août 2022
161
21 avril 2011 à 22:59
Bonsoir,

Pense à mettre "Réponse acceptée" sur le ou les messages qui t'ont aidés ;)

Mon site
0