' Découpage complet aMots = Split(maChaine, " ") ' Ne garde que les premières occurrences recherchées ReDim Preserve aMots(PositionCherchée - 1) ' Refait une chaine sTemp = Join(aMots, " ") ' Résultat lPos = Len(sTemp) ' peut être avec un + 1
Compteur = 0 r = Instr(1, maChaine, " ") Do While r > 0 Compteur = Compteur + 1 If Compteur = 2 Then ValeurRetournée = r Exit Do End If r = Instr(r + 1, maChaine, " ") Loop
Dim sChaine As String Dim iNombre As Integer Dim iPosition As Integer Dim x As Integer sChaine = "tutu toto tata titi zizi" iNombre = 0 iPosition = 0 For x = 1 To Len(sChaine) If Mid(sChaine, x, 1) " " Then iNombre iNombre + 1 ' te donne le nombre d'espaces Next x iPosition = InStr(sChaine, " ") ' te donne la position du premier espace MsgBox "Nombre " & iNombre & " , position du premier " & iPosition
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionaMots = Split(maChaine, " ") lPos = 0 If PositionCherchée > (UBound(aMots) + 1) Then MsgBox "Nombre de mots insuffisants" Else For r = 0 To (PositionCherchée - 1) lPos = lPos + Len(aMots(r)) + 1 Next r MsgBox "Position du " & PositionCherchée & "ème espace : " & lPos End If
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click MessageBox.Show(IndexOfN("tutu toto tata titi zizi", " "c, 2).ToString) End Sub Function IndexOfN(ByRef Expression As String, ByVal Find As Char, ByVal Occurrence As Integer) As Integer If Occurrence <= 0 Then Return -1 ElseIf Occurrence = 1 Then Return Expression.IndexOf(Find) Else Dim iPos As Integer = -1 Dim i As Integer = 1 Do iPos = Expression.IndexOf(Find, iPos + 1) If iPos = -1 Then Return -1 'on quitte Else If i = Occurrence Then Return iPos 'position trouvée, on retourne Else i += 1 'next End If End If Loop End If End Function