[AccessD] A2003 - Build a List/Array from Tokens in a blurb

Gustav Brock gustav at cactus.dk
Fri Aug 21 03:52:06 CDT 2015


Hi Darren

Split is your friend:

<code>
Public Function SplitTokens(ByVal Message As String) As String()

    Dim Parts       As Variant
    Dim Tokens()    As String
    Dim Token       As Integer
    
    ' Split into first parts.
    Parts = Split(Message, "[")
    
    If UBound(Parts) <= 0 Then
        ' Return array with LBound = 0.
        ReDim Tokens(0)
    Else
        ' Return array with LBound = 1.
        ' Clean parts and fill array.
        ReDim Tokens(1 To UBound(Parts))
        For Token = 1 + LBound(Parts) To UBound(Parts)
            Tokens(Token) = "[" & Split(Parts(Token), "]", 2)(0) & "]"
        Next
        
        ' Split into second parts.
        Parts = Split(Message, "{")
    
        If UBound(Parts) > 0 Then
            ' Clean parts and append to array.
            ReDim Preserve Tokens(1 To UBound(Tokens) + UBound(Parts))
            For Token = 1 + LBound(Parts) To UBound(Parts)
                Tokens(UBound(Tokens) - 1 + Token) = "{" & Split(Parts(Token), "}", 2)(0) & "}"
            Next
        End If
        ' Return array with LBound = 1.
    End If
    
    SplitTokens = Tokens

End Function
</code>

/gustav

-----Oprindelig meddelelse-----
Fra: AccessD [mailto:accessd-bounces at databaseadvisors.com] På vegne af Darren - Active Billing
Sendt: 21. august 2015 02:35
Til: Access Developers discussion and problem solving <accessd at databaseadvisors.com>
Emne: [AccessD] A2003 - Build a List/Array from Tokens in a blurb

Hi Team

if I had a field with the following blurb...

Dear [FirstName],
Today is [NameOfDay] and the date is the [DateOfMonth] of [NameOfMonth].
Kind Regards,
{SignatoryName}

I can see in that blurb there are 5 tokens surrounded by Square and or Curley brackets.
How could I run though that text and build a list of the 5 tokens such that I can produce a list/array like...

[FirstName]
[NameOfDay] 
[DateOfMonth]
[NameOfMonth]
{SignatoryName}

Many thanks in advance.

Darren



More information about the AccessD mailing list