Monday, November 17, 2008

LotusScript equivalents for the @URLDecode

Function urlDecode(s As String) As String
If Len(s) = 0 Then Exit Function
Dim i As Integer
Dim tmp As String
Dim c As String
For i = 1 To Len(s)
c = Mid$(s, i, 1)
If c = "+" Then c = " "
If c = "%" Then
c = Chr$("&H" + Mid$(s, i + 1, 2))
i = i + 2
End If
tmp = tmp + c
Next i
urlDecode = tmp
End Function

LotusScript equivalents for the @URLEncode

Function urlEncode(s As String) As String
If Len(s) = 0 Then Exit Function

Dim tmp As String
Dim c As String
Dim i As Integer

For i = 1 To Len(s)
c = Mid(s, i, 1)
If (Asc(c) >= 65 And Asc(c) <= 90) _
Or (Asc(c) >= 97 And Asc(c) <= 122) _
Or (Asc(c) >= 48 And Asc(c) <= 58) _
Or Asc(c) = 38 _
Or (Asc(c) >= 45 And Asc(c) <= 47) _
Or Asc(c) = 58 Or Asc(c) = 61 _
Or Asc(c) = 63 Or Asc(c) = 126 Then
tmp = tmp + c
Else
tmp = tmp + "%" + Hex(Asc(c))
End If
Next i
urlEncode = tmp
End Function

Saturday, November 15, 2008

LotusScript equivalents for the @ProperCase

Function properCase(Byval txtIn As String) As String
properCase = Strconv(txtIn, 3)
End Function

LotusScript equivalents for the @ReplaceSubstring

Function ReplaceSubstringEvaluate (Byval fullString As String, oldString As String,
newString As String) As String
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim var As Variant

Set db = session.CurrentDatabase
Set doc = New NotesDocument(db)

Call doc.ReplaceItemValue("FullString", fullString)
Call doc.ReplaceItemValue("OldString", oldString)
Call doc.ReplaceItemValue("NewString", newString)

var = Evaluate("@ReplaceSubstring(fullString; oldString; newString)", doc)
ReplaceSubstringEvaluate = var(0)

'** clean up the memory we used
Set doc = Nothing
Set db = Nothing

End Function

Wednesday, November 12, 2008

LotusScript equivalents for the @Elements

Function Elements(anArray as Variant) as Integer
i = 0
Forall values in anArray
i = i + 1
End Forall
Elements = i
End Function

LotusScript equivalents for the @Replace

Function StringStuffReplaceString(strArg As String, strSrc As String,strDst As String) As String
Dim iPos As Integer
iPos = Instr(strArg, strSrc)
While iPos > 0
strArg = Left$(strArg, iPos - 1) + strDst + Mid$(strArg, iPos + Len(strSrc))
iPos = Instr(iPos + Len(strDst), strArg, strSrc)
Wend
StringStuffReplaceString = strArg
End Function

LotusScript equivalents for the @Picklist

Sub Click(Source As Button)
Dim ws as new notesuiworkspace
dim mailfile as string
dim mailserver as string
dim varFolder as variant


mailfile=ses.GetEnvironmentString( "MailFile", True) mailserver=ses.GetEnvironmentString( "MailServer", True)
varFolder=ws.PickListStrings( 4, False, mailserver, mailfile)

'False to select a single folder or specify True to select multiple folders by holding the Crtl-key

if isEmpty(varFolder) then exit sub

End Sub