Well Rakesh , Here is teh VB Program for finding out any text and replace that text with another.
' This variable is used for making the algorithm generic.
Dim txtClient As TextBox
' This method is the public interface to SnR functionality.
Public Sub FindnReplace(ByRef Tb As TextBox)
Set txtClient = Tb
Me.Show , txtClient.Parent
End Sub
Private Sub cmdReplace_Click()
Dim CaseSense As Integer
Dim SourceText As String
Dim SourceTextCopy As String
Dim Cnt As Integer
' Check for the case sensitivity options
If (chkCaseSense.Value = vbChecked) Then
CaseSense = 0
Else
CaseSense = 1
End If
' One contains the original text and another contains replaced
' (updated) one.
' Used to check whether a replacement was done or not.
SourceText = txtClient.Text
SourceTextCopy = SourceText
If Len(SourceText) = 0 Then
Exit Sub
End If
On Error GoTo ErrHandler
Dim SearchTermLen As Integer
Dim FndPos As Integer
SearchTermLen = Len(txtSearchTerm.Text)
' Search from the begining of the document.
Cnt = 1
' This is endless loop (terminated on a condition checked inside
' the loop body).
While (1)
FndPos = InStr(Cnt, SourceText, txtSearchTerm.Text, CaseSense)
' When a match is found, replace it appropriately.
If (FndPos > 0) Then
SourceText = ReplaceFun(SourceText, FndPos, _
Len(txtSearchTerm.Text), _
txtReplaceWithString.Text)
Cnt = FndPos + SearchTermLen
Else
Cnt = Cnt + 1
End If
' Whether a replacement was done at all or not
If (Cnt >= Len(SourceText)) Then
txtClient.Text = SourceText
If (SourceTextCopy <> SourceText) Then
MsgBox "Finished replacing all occurrences.", _
vbInformation + vbOKOnly, _
"Replaced All"
Else
MsgBox "No matching strings found. No text replaced.", _
vbInformation + vbOKOnly, _
"No Replacement"
End If
Unload Me
Exit Sub
End If
' Else Restart from henceforth
Wend
Exit Sub
ErrHandler:
Response = MsgBox("An error ocurred while searching. Inform _
the developer with details.", _
vbExclamation + vbOKOnly, "Error Searching")
End Sub
Private Sub Form_Load()
' Default SearchTerm must be the one selected by the user in
' MainForm
If Len(txtClient.SelText) <> 0 Then
txtSearchTerm.Text = txtClient.SelText
End If
End Sub
Function ReplaceFun(Source As String, FromPos As Integer, _
Length As Integer, StringTBReplaced _
As String) As String
' Replaces a source string with new one appropriately
Dim ResultStr As String
ResultStr = Left(Source, FromPos - 1)
ResultStr = ResultStr & StringTBReplaced
ResultStr = ResultStr & Right(Source, Len(Source) - FromPos - _
Length + 1)
ReplaceFun = ResultStr
End Function
Private Sub txtReplaceWithString_Change()
Call EnableDisableReplaceButton
En d Sub
Private Sub txtReplaceWithString_GotFocus( )
' Select the contents of the textbox
If Len(txtReplaceWithString.Text) <> 0 Then
txtReplaceWithString.Sel Start = 0
txtReplaceWithString.SelLen gth = Len(txtReplaceWithString.Text)
End If
End Sub
Private Sub txtSearchTerm_Change()
Call EnableDisableReplaceButton
En d Sub
Private Sub EnableDisableReplaceButton()
If Len(txtSearchTerm.Text) <> 0 _
And Len(txtReplaceWithString.Text) <> 0 Then
cmdReplace.Enabled = True
Else
cmdReplace.Enabled = False
End If
End Sub
Private Sub txtSearchTerm_GotFocus()
' Select the contents of textbox
If Len(txtSearchTerm.Text) <> 0 Then
txtSearchTerm.SelStart
Answered by
laks
, an ibibo Master,
at
3:28 PM on June 02, 2008