Cercare una parola nel testo di un Editor

Da Gambas-it.org - Wikipedia.

Nel fare una ricerca all'interno del testo di un oggetto Editor bisognerà considerare che i caratteri sono suddivisi rigidamente in linee (righe) ed in colonne, e di questo si dovrà tenere conto.

In questa pagina ci fa riferimento al caso in cui si intende cercare una parola all'interno del testo di un Editor.


Innanzitutto Gambas mette a disposizione il metodo

Editor1.ShowString(parola As String)

che cerca ed evidenzia all'interno del testo contemporaneamente ogni ricorrenza di quella parola presente nel testo.


Il codice che segue, invece, evidenzierà, cliccando sul Button, una sola ricorrenza della parola alla volta:

Private edi$ As String
Private a As Integer
Private j As Integer


Public Sub Form_Open()
 
   Editor1.Text = File.Load("/file/di/testo")
   TextEdit1.SetFocus
   Editor1.SetFocus()
   
End


Public Sub Button1_Click()
   
     If String.InStr(edi$, TextEdit1.Text) > 0 Then

     quaerit()
     
     Else
       If j < Editor1.Lines.Count - 1 Then
         Inc j
         a = 0
         edi$ = Editor1.Lines[j].Text
         quaerit()
       Endif
     Endif

End


Private Procedure quaerit()
 
 Editor1.Select(j, String.InStr(edi$, TextEdit1.Text) + a - 1, j, String.InStr(edi$, TextEdit1.Text) + a + Len(TextEdit1.Text) - 1)

 a += String.InStr(edi$, TextEdit1.Text)

 edi$ = Right(Editor1.Lines[j].Text, Editor1.Lines[j].Length - a)
 
End


Public Sub TextEdit1_Change()

 j = 0
 a = 0
 edi$ = Editor1.Lines[j].Text
 
End