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