Recuperer nombre dans une chaine de caractere

jacobmahone - 7 mai 2018 à 15:19
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 - 7 mai 2018 à 18:06
Bonjour,
je desire recuperer chaque nombre dans une chaine de caractere et le mettre dans un combobox
exemple si str= mimi24 est avec toto64 en compagnie de dianne9
je dois avoir dans mon combobox ceci:
<<combobox>>
24
64
9
voici mon code qui marche mais affiche ceci : 24649
Dim l As Integer
                Dim ascii As Integer
                Dim numerique As String = ""
                For l = 1 To Len(message)
                    ascii = Asc(Mid(message + vbNewLine, l, 1))
                    If (ascii > 43 And ascii < 47) Or (ascii > 47 And ascii < 58) Then numerique = numerique & Mid(message + vbNewLine, l, 1)
                Next
                'coeur d'attente
                If Not ComboBox1.Items.Contains(numerique) Then
                    ComboBox1.Items.Add(numerique)
                End If

1 réponse

Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 656
7 mai 2018 à 15:28
Bonjour,

utilise une regex
 \d+

Voir un exemple ci dessous, regarde l'onglet "Table"

http://regexstorm.net/tester?p=%5cd%2b&i=mimi24+est+avec+toto64+en+compagnie+de+dianne9+


Un petit tuto (en C#)
https://lgmorand.developpez.com/dotnet/regex/

Pour traduire le C# en VB.NET
https://www.google.com/search?q=C%23+to+vb&sourceid=ie7&rls=com.microsoft%3Afr-FR%3AIE-Address&ie=&oe=&gws_rd=ssl
0
son usage m'echape WHIS
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27 > jacobmahone
Modifié le 7 mai 2018 à 18:01
Bonjour jacobmahone,

Bonjour Whismeril (bravo pour ton dernier tutoriel concernant le binding)

En ajoutant les références
Option Strict On
Option Explicit On
Imports System.Text.RegularExpressions
et
        Dim message As String = "mimi24 est avec toto64 en compagnie de dianne9 "
        Dim pattern As String = "\d+"

        For Each m As Match In Regex.Matches(message, pattern)
            MessageBox.Show(m.Value)
        Next

Il te suffit donc de constituer ta collection.

Oubli:
Afin de faire du vb.Net et non un mix vb6 & vb.Net, dans les références du projet (espaces de noms importés), il faut décocher la référence à "Microsoft.VisualBasic".
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 656
7 mai 2018 à 18:06
Salut Jean Marc, merci

@Jacob
son usage m'echape
et pourquoi je t'ai mis un lien vers un tuto?
0
Rejoignez-nous