Here is a lotusscript function for the @Middle formula function.
Function Middle (fullString As String, startString As String, endString As String) As String
Dim startposition As Integer
Dim startlen As Integer
Dim endposition As Integer
startPosition = Instr (fullString, startString)
startLen = Len (startString)
If ((startPosition > 0) And (startString <> "")) Then
endPosition = Instr (Right$ (fullString, Len(fullString) - startPosition), endString)
If (endPosition > 0) Then
Middle = Mid$ (fullString, startPosition + startLen, Instr (startPosition + startLen, fullString, endString) - ( startPosition + startLen ) )
Else
Middle = Mid$ (fullString, Instr (fullString, startString) + Len (startString), Len (fullString))
End If
Else
Middle = ""
End If
End Function
Use:
midStr = Middle("This is a wildcard _ and this is what you get +", "_", "+")
Msgbox thestr
Result:
and this is what you get
*** updated 10 aug ***
or make it easier as Thomas Adrian suggested in a comment:
middle = Evaluate(|@Middle("| + mystring + |";"| + startString + |";"| + endstring + |")|)
Exempel:
Dim middle As Variant
middle = Evaluate(|@Middle("| + mystring + |";"| + startString + |";"| + endstring + |")|)
Print middle(0)
***************
*** updated 14 aug***
Here's another approach by Sean Burgess suggested in a comment and it works fine as well.
Dim tmp As Variant
Dim FullString As String
Dim StartString As String
Dim EndString As String
FullString = "This is a wildcard _ and this is what you get+"
StartString = "_"
EndString = "+"
tmp = Strright(Strleft(FullString, EndString), StartString)
Msgbox tmp
***************
One could say that the script I posted is somewhat unnecessary ;-) when it could be done in these ways. Or... you could call it ambitious. Anyway now I would say we've covered the middle function! But please feel free to post other solutions and I will put them up as updates.
Technorati tags:
Show-n-Tell Thursday, sntt, Lotus Notes, Lotusscript
Andra bloggar om:
Show-n-Tell Thursday, sntt, Lotus Notes, Lotusscript
August 10, 2006
Lotusscript version of the @Middle formula
Posted by Niklas Waller at 10:08 AM
Subscribe to:
Post Comments (Atom)
2 comments:
Man kan göra hela ditt middlescript med en rad.
middle = Evaluate(|@Middle("| + mystring + |";"| + startString + |";"| + endstring + |")|)
Exempel:
Dim middle As Variant
middle = Evaluate(|@Middle("| + mystring + |";"| + startString + |";"| + endstring + |")|)
Print middle(0)
Se mer här:
http://www.notessidan.se/A55B53/blogg.nsf/plink/PPAN-6MEVDZ
Call me silly, but wouldn't a single line be much better?
tmp = StrRight(StrLeft(FullString, EndString), StartString)
Sean---
Post a Comment