- Function Dissocier(Chaîne As String, Optional Balise As String = _
- " ") As Variant
- Dim Éléments() As String, LongChaîne As Long, PrécBalise As Long
- K = -1
- 'Cas où aucune balise n'est spécifiée : le tableau n'a qu'une
- 'entrée qui contient toute la chaîne
- If Len(Balise) = 0 Then
- ReDim Éléments(0)
- Éléments(0) = Chaîne
- GoTo Fin
- End If
- Do
- K = K + 1
- LongChaîne = Len(Chaîne)
- 'Recherche le dernier caractère avant la balise
- PrécBalise = InStr(1, Chaîne, Balise, vbBinaryCompare) - 1
- 'Quand il n'y a plus d'occurrence de la balise, récupère
- 'la fin de la chaîne
- If PrécBalise = -1 Then PrécBalise = LongChaîne
- 'Insère les données dans une entrée du tableau
- ReDim Preserve Éléments(K)
- Éléments(K) = Mid(Chaîne, 1, PrécBalise)
- If PrécBalise = LongChaîne Then Exit Do
- 'Réduit la chaîne
- Chaîne = Right(Chaîne, LongChaîne - PrécBalise - Len(Balise))
- Loop
- Fin:
- Dissocier = Éléments()
- End Function
Function Dissocier(Chaîne As String, Optional Balise As String = _
" ") As Variant
Dim Éléments() As String, LongChaîne As Long, PrécBalise As Long
K = -1
'Cas où aucune balise n'est spécifiée : le tableau n'a qu'une
'entrée qui contient toute la chaîne
If Len(Balise) = 0 Then
ReDim Éléments(0)
Éléments(0) = Chaîne
GoTo Fin
End If
Do
K = K + 1
LongChaîne = Len(Chaîne)
'Recherche le dernier caractère avant la balise
PrécBalise = InStr(1, Chaîne, Balise, vbBinaryCompare) - 1
'Quand il n'y a plus d'occurrence de la balise, récupère
'la fin de la chaîne
If PrécBalise = -1 Then PrécBalise = LongChaîne
'Insère les données dans une entrée du tableau
ReDim Preserve Éléments(K)
Éléments(K) = Mid(Chaîne, 1, PrécBalise)
If PrécBalise = LongChaîne Then Exit Do
'Réduit la chaîne
Chaîne = Right(Chaîne, LongChaîne - PrécBalise - Len(Balise))
Loop
Fin:
Dissocier = Éléments()
End Function