Split plusieurs délimiteurs

Contenu du snippet

Voici une petite fonction utile.. (pour moi en tous cas). Elle permet de faire un Split avec plus d'un sépareteur.

Source / Exemple :


Private Function ASplit(ByVal sWhat As String, ByRef sSeparators() As Variant) As Variant
    Dim N As Long, L As Long
    Dim vSep As Variant
    Dim aOut() As Variant
    
    ReDim aOut(0)
    L = 1
    
    For N = 1 To Len(sWhat)
        For Each vSep In sSeparators
            If Mid(sWhat, N, Len(CStr(vSep))) = CStr(vSep) Then
                aOut(UBound(aOut)) = Mid(sWhat, L, N - L)
                ReDim Preserve aOut(UBound(aOut) + 1)
                L = N + 1
            End If
        Next
    Next N
    
    aOut(UBound(aOut)) = Mid(sWhat, L)
    
    ASplit = aOut
End Function

' Utilisation:
Dim asSeparators() as Variant
Dim asTerms() as Variant

asSeparators = Array("+", "-")
asTerms = ASplit("a+b-c", asSeparators)

' renvoie :
' asTerms(0) = "a"
' asTerms(1) = "b"
' asTerms(2) = "c"

Conclusion :


Voila... Des comentaires, des options à ajouter, des optimisations ?

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.