Manage Learn to apply best practices and optimize your operations.

@Explode in agent

This tip gives you the code for @Explode for use in an agent or to perform a query_string variable.

View member feedback to this tip.

Move it on script library and use this code when you need @Explode in an agent or when you need to perform a Query_String variable.

Function getURLargs
(query As String,pattern As
 String, flag As Integer) As Variant
 '************** S.Sinelnikov 2003 
*******************
 'this function return array of arguments 
from Query_String or another string variable (query).
 ' If flag=false, it works as @Explode(query,pattern), 
 ' if flag=true, return list of arguments (&arg=) value. 
 'For example:
 ' getURLargs("&uid=","openAgent&del=20
&uid=10&uid=12&cat=jachts",true) 
 'returns array of string 10,12
 'if query hasn't pattern return Empty Value
 '**********************************************************
 Dim i,j  As Integer
 Dim args() As String
 
 'this loop counts number of arguments
 i=1
 While Strrightback(query,pattern,1,i)<>""
  i=i+1
 Wend
 'next code executes if anything pattern 
was find in query
 If I>1 Then
  Redim args(i-2)
  
 'this loop stored values of arguments in "args" array
  For j=0 To i-2
   args(j)=Strleft(Strright(query,pattern,1,
j+1)+pattern,pattern,1)
  Next
  
 'this code transform values of arguments, 
because args(2) from comment 
has value "12&cat=jachts"
  If flag Then
   Forall p In args
    If Instr(1,p,"&")>0 Then
     p=Left$(p,Instr(1,p,"&")-1)
    End If
   End Forall
  End If
 '***************************************
*******************
  getURLargs=args
 End If
End Function

MEMBER FEEDBACK TO THIS TIP

I think the Evaluate statement is underrated by many LotusScript-only developers. That whole script could be done with one Evaluate statement:

Function getURLargs (query as String, 
pattern as String)
   args = Evaluate(|@Trim(@Right
(@Explode("| & query & |"; "&"); "| &
   pattern & |"))|)
   getURLargs = args
End Function
And now that most of the memory leak issues have been solved, I use Evaluate a lot for just this type of thing.

-- Robert A.

*******************************************

This tip attempts to duplicate @Explode functionality already available in LotusScript. The LotusScript equivalent of @Explode is the "Split" function available with ND6.

-- Gene K.

Do you have comments of your own? Let us know.

This tip was submitted to the SearchDomino.com tip library by member Sergey Sinelnikov. Please let others know how useful it is via the rating scale below. Do you have a useful Lotus Notes, Domino, Workplace or WebSphere tip or code snippet to share? Submit it to our monthly tip contest and you could win a prize.

Dig Deeper on Lotus Notes Domino Agents

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.

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

SearchDataCenter

SearchContentManagement

Close