|
|
|
Click here to copy the following block | Option Explicit
Enum sepType specialSep = 0 spacesOnly = 1 spacesAndSymbols = 3 spacesSymbolsAndCtrl = 7 spacesSymbolsCtrlAndDigits = 15 End Enum
Function ReplaceWordEx(Source As String, Find As String, ReplaceStr As String, _ Optional ByVal Start As Long = 1, Optional Count As Long = -1, _ Optional Compare As VbCompareMethod = vbBinaryCompare, _ Optional separatorType As sepType = spacesSymbolsCtrlAndDigits, _ Optional Separator As String = vbNullString) As String Dim findLen As Long Dim replaceLen As Long Dim index As Long Dim counter As Long Dim charcode As Integer Dim replaceIt As Boolean
findLen = Len(Find) replaceLen = Len(ReplaceStr)
If findLen = 0 Then Err.Raise 5
If Start < 1 Then Start = 1 index = Start
ReplaceWordEx = Source
Do index = InStr(index, ReplaceWordEx, Find, Compare) If index = 0 Then Exit Do
replaceIt = False If index > 1 Then charcode = Asc(UCase$(Mid$(ReplaceWordEx, index - 1, 1))) Else charcode = 32 End If
If IsValidChar(charcode, separatorType, Separator) Then charcode = Asc(UCase$(Mid$(ReplaceWordEx, index + Len(Find), _ 1)) & " ") If IsValidChar(charcode, separatorType, Separator) Then ReplaceWordEx = Left$(ReplaceWordEx, index - 1) & ReplaceStr & _ Mid$(ReplaceWordEx, index + findLen) index = index + replaceLen counter = counter + 1 End If Else index = index + findLen End If
Loop Until counter = Count
End Function
Private Function IsValidChar(char As Integer, separatorType As sepType, _ Separator As String) Dim charType As Integer
If separatorType = specialSep Then IsValidChar = (char = Asc(UCase$(Separator))) Exit Function End If
Select Case char Case Is < 32 charType = 4
Case 32 charType = 1
Case Is < 48, Is > 90 charType = 2
Case Is < 58 charType = 8
Case Is < 65 charType = 2
Case Else charType = 0 End Select
IsValidChar = Not ((charType And separatorType) = 0) End Function |
|
|
|
Submitted By :
Nayan Patel
(Member Since : 5/26/2004 12:23:06 PM)
|
|
|
Job Description :
He is the moderator of this site and currently working as an independent consultant. He works with VB.net/ASP.net, SQL Server and other MS technologies. He is MCSD.net, MCDBA and MCSE. In his free time he likes to watch funny movies and doing oil painting. |
View all (893) submissions by this author
(Birth Date : 7/14/1981 ) |
|
|