Extended examples: array and String functions

This program illustrates the functionality and usage of the following LotusScript® array functions: ArrayAppend, ArrayGetIndex, ArrayReplace, FullTrim; and the following String functions: StrLeft, StrRight, StrLeftBack, StrRightBack.

The important code is in the two routines, ArrayExamples and AtComputeStrings. The rest of it consists of declarations and initialization. The generated output from the code is also listed as follows.

StringExample: 
Option Public
Option Base 1
Dim arr1(8) As String
Dim arr2(8) As String
Dim arr3 
Dim arr4(8) As Integer
Dim tarray1(10) As Integer
Dim tarray2(10) As Integer
Dim tarray3(10) As Integer
Dim i As Integer, x As Integer
Dim ans As String 
Dim Indexresult
Dim localarray
Dim arresult
Sub Initialize
   ' arr1 will contain the following names
   arr1(1) = "Daniel"
   arr1(2) =  "Nate"
   arr1(3) =  "Joshua"
   arr1(4) =  "Sam"
   arr1(5) =  "Benjamin"
   arr1(6) =  "Julie "
   arr1(7) =  "Lauren "
   arr1(8) =  "Scrubbles"
   ' arr2 will contain "Joe1", "Joe2", etc
   ' arr4 will contain integers, with all even
   ' entries being zero
   For i = 1 To 8
      arr2(i) = "Joe" & i
      If (i Mod 2) = 0 Then
         arr4(i) = 0
      Else
         arr4(i) = i
      End If
   Next
   ' Initialize the arrays
   ' tarray1 will contain (1,2,3,4,5,6,7,8,9,10)
   x = 1
   For i =1 To 20
      If i  =< 10 Then
         tarray1(i) = i
      End If
   ' tarray2 will contain (2,4,6,8,10,12,14,16,18,20)
      If (i Mod 2) = 0 Then
         tarray2(x) = i 
         x = x+1	
      End If
   Next
   ' tarray3 will contain the following (8,6,4,2,25,0,0,0,0,0)
   tarray3(1) =  8
   tarray3(2) =  6
   tarray3(3) =  4
   tarray3(4) =  2
   tarray3(5) =  25
   ' Run the examples
   ArrayExamples
   AtComputeStrings
End Sub
Sub Arrayexamples
   ' Arrayappend populates arr3 with all elements of arr1
   ' and all elements of arr2,  arr3 lower bound is 1
   ' its upper bound is 16
   Print "Arrayappend results:"
   arr3 =  Arrayappend (arr1, arr2)
   Print "    arr3 contains: ", arr3(1), arr3(2), "..." , _
      arr3(15), arr3(16)
   Print "    Up/Low bounds for arr3: " & Lbound(arr3) & _
      " & " & Ubound(arr3)
   ' Arraygetindex example
   value = "Benjamin"
   Indexresult = Arraygetindex(arr1,value)
   Print "Arraygetindes results:"
   Print "    Arraygetindex(arr1,value) returns ";_
     Indexresult
   Indexresult = Arraygetindex(arr1,"Scrubbles")
   Print "    Arraygetindex(arr1,""Scrubbles"") returns "; Indexresult
   ' Fulltrim of an array
   Print "Arraygetindex on fulltrimed array results:"
   localarray = Fulltrim(arr4) 'localarray = [1, 3, 5, 7]
   Indexresult = Arraygetindex(localarray, 3)
   Print  "    Arraygetindex(localarray, 3) returns "; Indexresult
   'Fulltrim of a string
   Print "Fulltrim of string:"
   qbf_spaces = "       The       quick brown     fox" & _
     "    jumped      over the    lazy    dog.      "
   Print "   ", qbf_spaces
   qbf_trimed = Fulltrim(qbf_spaces)
   Print "   ", qbf_trimed
   ' Arrayreplace example
   Print "Arrayreplace results:"
   'Expected answer is "1 8 3 6 5 4 7 2 9 25"
   arresult = Arrayreplace( tarray1, tarray2, tarray3)
   ' Generate string that represent the contents of arresult 
   msg1 = ""
   For i = 1 To 10
      msg1 = msg1 & " " & arresult(i)
   Next
   Print "    arresult = " & msg1
End Sub
Sub  AtComputeStrings()
   Dim s1 As String
   Dim s2 As String
   Dim v1 As Variant
   s1 = "The quick brown FOX jumps over the lazy dog."
   s2 = "he"
   Print " "
   Print "Results for Strleft, strright, strrightback," & _
     " Strleftback"
   ' Search left to right  
   ' Strleft: expect v1 = "T"
   v1 = Strleft( s1, s2 )
   Print "    " + v1
   ' Strright:
   ' expect v1 = " quick brown FOX jumps over the lazy dog."
   v1 = Strright( s1,s2 )
   Print "    " + v1
   ' Search right to left
   ' Strleftback: 
   ' expect v1 = "The quick brown FOX jumps over t"
   v1 = Strleftback( s1, s2 )
   Print "    " + v1
   ' Strrightback: expect v1 = " lazy dog."
   v1 = Strrightback( s1, s2 )
   Print "    " + v1
   ' With some optionals.....
   s1 = "The quick brown FOX jumps over the lazy dog."
   s2 = "o"        
   ' the letter o  CHANGED S2, pattern searched for HERE.
   ' A case INsensitive search, it finds the second
   ' occurrence of 'o' and returns what is to the left of that.
   ' expect v1 = "The quick brown F "
   v1 = Strleft( s1,s2, 5, 2  )
   Print "    " + v1
   ' A Case sensitive search,  Finds the third occurrence of  
   ' 'o'  and returns what is to the RIGHT of that.
   ' expect  v1 = "ver the lazy dog."	
   v1 = Strright( s1,s2, 0, 3 )
   Print "    " + v1
   s2 = "O"
   ' A case sensitive search. Expect v1 = "The quick brown F"
   v1 = Strleftback( s1,s2,0 )
   Print "    " + v1
   ' A case sensitive search, with a skip first occurrence,
   ' O in FOX is Skipped and  no other occurrence exists,
   ' expect v1 = ""
   v1 = Strleft( s1,s2,0,2)
   Print "    " + v1
End Sub

The results of this program are:

ArrayAppend results:

    arr3 contains:   Daniel, Nate, ... Joe7, Joe8
    Up/Low bounds for arr3: 1 & 16

ArrayGetIndex results:

    ArrayGetIndex(arr1,value) returns  5 
    Arraygetindex(arr1,"Scrubbles") returns  8 

ArrayGetIndex on fulltrimed array results:

Arraygetindex(localarray, 3) returns  2 

FullTrim of string:

The quick brown fox jumped over the lazy dog.

 The quick brown fox jumped over the lazy dog.

ArrayReplace results:

arresult =  1 8 3 6 5 4 7 2 9 25

Results for Strleft, strright, strrightback, Strleftback

    T
     quick brown FOX jumps over the lazy dog.
    The quick brown FOX jumps over t
     lazy dog.
    The quick brown F
    g.
    The quick brown F