Explode Function

You Can View User Feedback To This Tip

Similar to Lotus' @Explode function, this Explode LotusScript function behaves as follows:
--Given a text string, elements that are separated by the specified separator are defined as members of an array.

For example if the string that was passed was "a:bc:def:g", and the separator was defined as ":", then the resulting array would contain the following four values:
a
bc
def
g


Function explode (Byval inString As String, OutList() As String, delim As String)

'This function takes a text field and splits the values into members of an array, based on the value passed as delim

Dim idx As Integer
Dim begin As Integer
Dim i As Integer

i = 0
begin = 1


'First make sure that the last character in inString is not a delimiter If Right$ ( inString , Len(delim) ) = delim Then inString = Left$(inString,Len(inString) - Len(delim))
End If

idx = Instr (begin , inString , delim)
Do While idx > 0
Redim Preserve outList(0 To i) As String
outList(i) = Mid$ ( inString , begin , idx - begin )
i = i + 1
begin = idx + Len(delim)
idx = Instr (begin , inString , delim)
Loop

Redim Preserve outList(0 To i) As String
outList(i) = Mid$ ( inString , begin )
explode = i + 1
End Function

USER FEEDBACK TO THIS TIP

  • Another way to implement the explode function would be using evaluate. In fact, use evaluate whenever you can make a computation with the formula language. It is so much more efficient.
     Dim texttosplit As String Dim resultarray As Variant Const delim = ":" texttosplit = "a:bc:def:g" resultarray = Evaluate(|@explode("| & texttosplit & |";"| & delim & |")|)
    
    Remember to avoid redim statements when you can. They're expensive.—Kasper
  • The code for the script version of explode is a bit different from the @Function. The @Function uses every character in the string as a delimiter. For example, if I have a string "No1Yes2Maybe3" and I use @Explode(string; "123"), I will get No, Yes, Maybe. But if I use your script, I don't get any list array back, just my original string because my delimiter is not in the string as a string. But for a one-character delimiter, it works the same. >—Robert Albritton
This was first published in November 2000

Dig deeper on Domino Resources - Part 4

0 comments

Oldest 

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

-ADS BY GOOGLE

SearchWindowsServer

Search400

  • iSeries tutorials

    Search400.com's tutorials provide in-depth information on the iSeries. Our iSeries tutorials address areas you need to know about...

  • V6R1 upgrade planning checklist

    When upgrading to V6R1, make sure your software will be supported, your programs will function and the correct PTFs have been ...

  • Connecting multiple iSeries systems through DDM

    Working with databases over multiple iSeries systems can be simple when remotely connecting logical partitions with distributed ...

SearchEnterpriseLinux

SearchDataCenter

SearchExchange

SearchContentManagement

Close