扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:刘涛编译 来源:天极网 2007年10月14日
关键字:
在本页阅读全文(共2页)
' 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 |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。