
LOTUSSCRIPT
Formula Functions
04.11.2000
Rating: -3.43- (out of 5)




As you write Lotusscript code, some function from the formula language may miss you. Here they are (maybe not all of them). At first I even rewrote some functions such as StrRight/Left[Back] as they were not in the language reference of the R5 designer client, and then I found them reading code from someone else. Here are some formula function and the non-obvious LS equivalents : @Trim(Array) : FullTrim(Array) @Trim(String) : FullTrim(String) ("A" = "B":"A") : (StrGetIndex(L,S)=Null) @Left("ABC";"B") : STRLeft @Right("ABC";"B"): STRRight @LeftBack : STRLeftBack @RightBack : STRRightBack
Code
Option Base 0 ' Released 11 APR 2000, pkannoglou@netcourrier.com Public Function Explode (Byval Src As String, Byval Sep As String) As Variant ' Remark : article 10.8, Array functions, tip from Ulrich Krause ' his function explode does the same. I did not examine his algorithm toroughly so it's up to you to decide which one you prefer ' See @Explode, default separator = ";" If (Sep = "") Then Sep = ";" Sep = Left$ (Sep, 1) Dim tmp() As String Redim tmp(0) pos% = 1 Do nextsep% = Instr (pos%, Src, Sep) If (nextsep% > 0) Then tmp(Ubound (tmp)) = Mid$ (Src, pos%, nextsep% - pos%) Redim Preserve tmp(Ubound (tmp) + 1) pos% = nextsep% + 1 End If Loop Until ((nextsep% = 0) Or (pos% > Len (Src))) tmp(Ubound (tmp)) = Mid$ (Src, pos%, Len(Src) - pos% + 1) Explode = tmp End Function Public Function Implode (Source As Variant, Byval Sep As String) As String ' Remark : Same as above ' See @Implode, default separator = ";" If (Not (Isarray (Source))) Then Implode = Cstr (Source) Exit Function End If If (Sep = "") Then Sep = ";" Sep = Left$ (Sep, 1) Forall Element In Source Implode = Implode & Element & Sep End Forall If (Right$ (Implode, 1) = Sep) Then Implode = Left$ (Implode, Len (Implode) - 1) End If End Function Public Function ArrayRemove (Source As Variant, RemoveList As Variant) As Variant ' AD:lotus411:10.8:Ulrich Krause ' ============================== ' Removes from Source any element common with RemoveList If (Not (Isarray (Source))) Then ArrayRemove = Source Exit Function End If Dim CleanList() As Variant Redim CleanList(0) Forall Element In Source ' Only copy elements not found in RemoveList If (Isnull (Arraygetindex (RemoveList, Element))) Then CleanList(Ubound (CleanList)) = Element Redim Preserve CleanList(Ubound (CleanList) + 1) End If End Forall If (Ubound (CleanList) > 0) Then Redim Preserve CleanList(Ubound (CleanList) - 1) ' Return processed list ArrayRemove = CleanList End Function Public Function ProperCase(Source As String) As String ' See @ProperCase prevchar$ = "" For pos% = 1 To Len (Source) c$ = Mid$ (Source$, pos%, 1) If ((prevchar$ = " ") Or (prevchar$ = ".") Or _ (prevchar$ = "?") Or (prevchar$ = "!") Or (pos% = 1)) Then ProperCase = ProperCase & Ucase$ (c$) Else ProperCase = ProperCase & Lcase$ (c$) End If prevchar$ = c$ Next End Function Public Function IsMember (ESLst As Variant, Lst As Variant) As Integer ' See @IsMember If (Not (Isarray (Lst))) Then IsMember = False Exit Function End If If (Isarray (ESLst)) Then ' ESLst is an array Forall Element In ESLst ' If one element can't be found in Lst : False If (Isnull (Arraygetindex (Lst, Element))) Then IsMember = False Exit Function End If End Forall Else ' ESLst is a scalar If (Isnull (Arraygetindex (Lst, ESLst))) Then IsMember = False Exit Function End If End If IsMember = True End Function Public Function KeyWords (Source As String, KWL As Variant, Byval Sep As String) As Variant ' See @KeyWords ' Generate separator list from Sep argument string or default If (Sep = "") Then Sep = | ",.?!;:[](){}<>| Dim SepList() As String Redim SepList(Len(Sep)) For pos% = 1 To Len (Sep) SepList(pos% - 1) = Mid$ (Sep, pos%, 1) Next ' Generate keyword list from list or scalar passed as KWL argument Dim KeyWordList As Variant If (Isarray (KWL)) Then ' KWL is an array KeyWordList = KWL Else ' KWL is a scalar Redim KeyWordList(0) KeyWordList(0) = Cstr (KWL) End If ' Parse the Source and look for the keywords Dim KeyWordFound() As String Redim KeyWordFound(0) word$ = "" For pos% = 1 To Len
 |

|
Rate this Tip
|
To rate tips, you must be a member of SearchDomino.com. Register now
to start rating these tips. Log in if you are already a member.
|


');
// -->
DISCLAIMER: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.
|
 |
|
|
 |
|
 |