LOTUSSCRIPT LANGUAGE


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 below.

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

See Also