VB Search Code

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

' 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 End Sub Private Sub txtReplaceWithString_GotFocus() ' Select the contents of the textbox If Len(txtReplaceWithString.Text) <> 0 Then txtReplaceWithString.SelStart = 0 txtReplaceWithString.SelLength = Len(txtReplaceWithString.Text) End If End Sub Private Sub txtSearchTerm_Change() Call EnableDisableReplaceButton End 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 = 0 txtSearchTerm.SelLength = Len(txtSearchTerm.Text) End If End Sub

You might also like