Attribute VB_Name = "shUtils" '[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ '[[ SHARED MODULE [[ '[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ '[[ [[ '[[ Utility Functions [[ '[[ [[ '[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ Option Explicit Public Function Extract(ByVal Msg As String, PosStart As Integer, PosEnd As Integer) As String Dim sRet As String Dim iLen As Integer 'default sRet = "" iLen = Len(Msg) If (PosStart < 1) Or (PosStart > iLen) Or (PosEnd < PosStart) Or (PosEnd > iLen) Then Exit Function Else sRet = Mid(Msg, PosStart, PosEnd - PosStart + 1) End If Extract = sRet End Function Public Function FirstWord(ByVal strSource As String) As String Dim Pos As Integer Dim sRet As String 'default ret val sRet = "" Pos = InStr(1, strSource, " ") 'look for space If Pos < 1 Then 'single-word string sRet = strSource Else sRet = Mid(strSource, 1, Pos - 1) End If FirstWord = sRet End Function Public Function SameText(ByVal str1 As String, ByVal str2 As String) As Boolean If LCase(Trim(str1)) = LCase(Trim(str2)) Then SameText = True Else SameText = False End If End Function Public Function Valid(ByVal obj As Variant) As Boolean Valid = Not (obj Is Nothing) End Function 'Replace any strRemove character/sub-string from the strSource by strReplace Public Sub CleanString(ByRef strSource As String, ByVal strRemove As String, Optional ByVal strReplace As String = "") strSource = Replace(strSource, strRemove, strReplace) End Sub Public Sub AddFlag(ByRef lVar, ByVal lFlag As Long) lVar = lVar Or lFlag End Sub Public Sub RemoveFlag(ByRef lVar, ByVal lFlag As Long) lVar = lVar And (Not lFlag) End Sub Public Function HasFlag(ByRef lVar As Long, ByVal lFlag As Long) As Boolean HasFlag = (lVar And lFlag) End Function Public Sub CondAddFlag(ByVal lFrom As Long, ByVal lFlag As Long, ByRef lDest As Long) If HasFlag(lFrom, lFlag) Then Call AddFlag(lDest, lFlag) End Sub